如果一个三位数的没个数位的数字三次方之和等于改数本身,我们称这种数字为水仙花数。
输入:n m(n和m为三位整数)
输出:n和m之间的水仙花数
#include <stdio.h>#include <stdlib.h>int check(int n);int main(int argc, char *argv[]) { int n,m; PRintf("请输入两个三位数并用空格隔开:/n"); scanf("%d %d",&n,&m); //判断输入的数字是否合法 if((n>=100 && n<=999) || (m>=100 && m<=999)){ //比较大小,小的为n,大的为m if(n>m){ n=n^m; m=n^m; n=n^m; } //从n到m循环,判断是否为水仙花数,若是,则输出 int i,flag=0; for(i=n;i<=m;i++){ if(flag==0){ flag = check(i); }else{ check(i); } } if(flag==0){ printf("no/n"); } }else{ printf("输入不合法。/n"); } return 0;}int check(int n){ int j,k,l; j=n%10; k=n/10%10; l=n/100; if(n == j*j*j+k*k*k+l*l*l){ printf("%d/n",n); return 1; }else{ return 0; }}
新闻热点
疑难解答