使用函数输出水仙花数:输入 2 个正整数 m 和 n(1<=m,n<=1000),输出 m 到 n 之间 的所有满足各位数字的立方和等于其自身的数。要求定义并调用函数 is(number)判断 number 的各位数字之立方和是否等于其自身,若相等则返回 1,否则返回 0。试编写相应程序。
直接给你程序,你看着程序就知道了
#include<stdio.h>
bool is( int number );
int main() {
int m, n;
scanf("%d%d", &m, &n);
while ( m <= n ) {
if ( is(m) ) {
printf("%d ", m);
}
m++;
}
}
bool is(int number) {
int ge = 0, si = 0, bai = 0, qian = 0 ;
if ( number >= 1000 ) {
qian = (number / 1000) % 10;
}
if ( number >= 100) {
si = (number / 100) % 10;
}
if ( number >= 10 ) {
bai = (number / 10) % 10;
}
if ( number >= 1 ) {
ge = number % 10;
}
//printf("%d,%d,%d,%d,%d\n",number,qian ,bai,si ,ge );
if ( number == qian * qian * qian + bai * bai * bai + si * si * si + ge * ge * ge ) {
return true;
} else {
return false;
}
}
供参考:
#include <stdio.h>
int is(int number)
{
int n=number,t=0;
while (n){
t+=(n%10)*(n%10)*(n%10);
n/=10;
}
return t == number;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
for (m;m<=n;m++)
if (m>99 && is(m))
printf("%d ", m);
return 0;
}