话不多说,先上图片
乍一看这题目很难,其实很简单,只要学会一个数的每位遍历即可,以下是我遍历一个数每位的模板:
int n;//n是要遍历的数
int i;
while(n)
{i=n/10;//i的结果就是一个整数的每位数,它会从个位开始遍历,一直在变
n/=10;
}
这个就是解答这个题目的代码了
#include<stdio.h>
int b0=2021,b1=2021,b2=2021,b3=2021,b4=2021,b5=2021,b6=2021,b7=2021,b8=2021,b9=2021;
int main()
{
int i;
for(i=1;i<=9999;i++)
{
if(fact(i)==1)
{printf("%d",i-1);
break;
}}
}
int fact(int i)
{
int n;
while(i)
{
n=i%10;
if(n==0)b0--;
if(n==1)b1--;
if(n==2)b2--;
if(n==3)b3--;
if(n==4)b4--;
if(n==5)b5--;
if(n==6)b6--;
if(n==7)b7--;
if(n==8)b8--;
if(n==9)b9--;
if(b0<0||b1<0||b2<0||b3<0||b4<0||b5<0||b6<0||b7<0||b8<0||b9<0)
return 1;
i/=10;
}
}
实施答案:3181