供参考:
//三位数 水仙花数
#include<stdio.h>
int main()
{
int i,s,n;
for(i=100;i<1000;i++){
n=i;s=0;
while(n){
s+=((n%10)*(n%10)*(n%10));
n/=10;
}
if(s==i)printf("%d\n",i);
}
return 0;
}
//求10--100000中每位数字之积大于该数的所有数
//没有符合上述条件的数
#include<stdio.h>
int main()
{
int i,n,m;
for(i=10;i<100000;i++){
n=i;m=1;
while(n){
m *= (n%10);
n /= 10;
}
if(m > i)printf("%d,m=%d\n",i,m);
}
return 0;
}
两个题目各自封装成了一个函数,代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
//第1题
void fun1()
{
int i;
int d,tmp;
int sum;
for (i= 100;i<=999;i++)
{
sum = 0;
tmp = i;
while(tmp>0)
{
d = tmp %10;
sum += (d*d*d);
}
if(sum == i)
printf("%d ",i); //水仙花数
}
}
//第2题
void fun2()
{
int i;
int d,tmp;
int jj;
for (i = 10; i< 100000;i++)
{
jj = 1;
tmp = i;
while(tmp> 0)
{
d = tmp%10;
jj *= d;
tmp /= 10;
}
if(jj > i)
printf("%d ",i);
}
}
int main()
{
fun1();
fun2();
return 0;
}