原题链接:C语言训练-"水仙花数"问题1
解题思路:
思路1:根据水仙花数的判断条件,判断一个数是不是水仙花数;
思路2:三位数,内的水仙花数只有153,370,371,407,看输入的数是不是等于这三个中的一个;
下面是输出所有水仙花数的代码:
#include <stdio.h> #include <math.h> void panduan( int N ); int main() { for ( int i = 100; i <= 999; i++ ) { panduan( i ); } return(0); } void panduan( int N ) { int sum = 0, N1 = N; /*if(N<100||N>=1000) * {return;} * else*/ while ( N != 0 ) { sum = sum + pow( (N % 10), 3 ); N /= 10; } if ( sum == N1 ) printf( "%d\n", sum ); return; }
注意事项:
默认以文件结束符结束;
输出带换行符;
参考代码:
思路二:
#include <stdio.h> int main() { int N; while ( scanf( "%d", &N ) != EOF ) { if ( N == 153 || N == 370 || N == 371 || N == 407 ) printf( "1\n" ); else printf( "0\n" ); } return(0); }
思路一:
#include <stdio.h> #include <math.h> void panduan( int N ); int main() { int N; while ( scanf( "%d", &N ) != EOF ) { panduan( N ); } return(0); } void panduan( int N ) { int sum = 0, N1 = N; if ( N < 100 || N >= 1000 ) { printf( "0\n" ); return; }else while ( N != 0 ) { sum = sum + pow( (N % 10), 3 ); N /= 10; } if ( sum == N1 ) printf( "1\n" ); else printf( "0\n" ); return; }
0.0分
6 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复