题目 水仙花数 类别 流程控制 时间限制 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<10000 输出说明 输出区间[a,b]或区间[b,a]上水仙花数的个数。 输入样例 3 1000 输出样例 4 提示 a,b的位数n可能小于3
int function (int a, int b) {
int i,f;
int k;//换数
int j=0;//计位数
int r;//记录要判断的数f
int g=0;//判断是否为水仙花数
int d=0;//计水仙花个数
if (a>b) {
k=a;
a=b;
b=k;
}
//循环判断并计数
for (f=a;f<=b;f++,j=0,g=0) {
r=f;
for (i=0;r>0;i++) {
r/=10;
j++;
}
r=f;
if (j<3) {
} else {
for (i=0;i<j;i++) {
g+=pow(r%10,j);
r/=10;
}
if (g==f) {
d++;;
}
}
}
return d;
}
不用输出水仙花个数,只用返回水仙花个数的值
认可的话赏个赞