题目:
水仙花数
类别
流程控制
时间限制
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
#include <stdio.h>
int function(int a, int b)
{
int i, j = 0, sum,tmp;
if(a>b)
{
tmp=a;
a=b;
b=tmp;
}
if (a < 100 && b < 1000)
{
for (i = 100; i <= b; i++)
{
sum = ((i % 10) * (i % 10) * (i % 10) + (i / 10 % 10) * (i / 10 % 10) * (i / 10 % 10) + (i / 100 % 10) *
(i / 100 % 10) * (i / 100 % 10));
if (sum == i)
j++;
}
}
else if (a < 1000 && b < 1000)
{
for (i = a; i <= b; i++)
{
sum = ((i % 10) * (