题目:
水仙花数
类别
流程控制
时间限制
2S
内存限制
10000Kb
问题描述
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153)。
定义一个函数int function(int a, int b),计算区间[a,b]或区间[b,a]上水仙花数的个数。
输入说明
输入由两个整数a和b构成,a和b之间用空格分隔。0
输出说明
输出区间[a,b]或区间[b,a]上水仙花数的个数。
输入样例
3 1000
输出样例
4
提示
a,b的位数n可能小于3
#include
#include
int function(int a,int b)
{int i;if(b<100){return 0;}if(b>=100){int a1,count,sum,SUM=0,max;max=(a>=100)?a:100;//因为反正都是从一百开始检索for(i=max;i<=b;i++){ count=0;a1=i;//a1是替身do{a1=a1/10;count++;}while(a1!=0);//一定不要忘记while分号a1=i,sum=0;do{sum=sum+pow(a1%10,count);a1=a1/10;}while(a1!=0);if(sum==i){SUM++;}}return SUM;//是可以这样写的} return 0;//如果不是void函数的话,最好写一个,不然会有编译提示
}
int main() {int a,b;scanf("%d %d",&a,&b);printf("%d",function(a,b)); return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!