
样例输出 1
203
样例输⼊ 2
900 4096
样例输出 2
389
主要难的是转这么多进制,求哪位思考下
假定 是幸运数字返回true 不是返回false
进制转换 你输入的咱默认十进制
while(n)
{
a[i++]=n%10;
n/=10
}
把每一位存到数组
遍历数组
先判断有没有 0 如果有 直接return false
然后呢
再写个函数 判断是否五进制是否幸运数字 有0返回false
进制转换不过是短除法,, 把余数直接存数组就行了 一样的遍历判断方法
之后类似 我写好了是否幸运数字的判断 你再写个循环找数字 就ok了 对了 我不会c++语法 自己看着改
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define True 1
#define False 0
int jinzhi(int n,int j)
{
int a[10],i=0;
int temp = n;
while (temp)
{
a[i++] = temp % j;
temp /= j;
}
for (i = 0;i < 10;i++)
if (a[i] == 0)
return False;
return True;
}
int isLuck(int n)
{
//五 七 九进制判断 全真和为3 不是3 说明不是幸运数字
if (jinzhi(n, 5) + jinzhi(n, 7) + jinzhi(n, 9) != 3)
return False;
else
return True;
}
int main()
{
int n;
printf("十进制输入一个数n:");
scanf("%d", &n);
if(isLuck(n))
printf("是幸运数字");
else
printf("不是幸运数字");
return 0;
}