|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入一个正整数n(3<=n<=7),输出所有的n位水仙花数。水仙花数是指一个n位正整数,它的各位数字的n次幂之和等于它本身。例如153的各位数字的立方和是1^3+5^3+3^3=153.试着编写程序。
本帖最后由 jackz007 于 2021-10-25 22:12 编辑
原来是 C 语言问题
- #include <stdio.h>
- int main(void)
- {
- int c , d , e , i , k , m , n , x ;
- scanf("%d" , & n) ;
- if(n >= 3 && n <= 7) {
- for(d = i = 1 ; i < n ; i ++) d *= 10 ;
- for(x = d ; x < d * 10 ; x ++) {
- for(m = 0 , k = x , e = d ; e ; k %= e , e /= 10) {
- for(c = 1 , i = 0 ; i < n ; i ++) c *= k / e ;
- m += c ;
- }
- if(x == m) printf("%d\n" , x) ;
- }
- }
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 3
- 153
- 370
- 371
- 407
- D:\00.Excise\C>x
- 5
- 54748
- 92727
- 93084
- D:\00.Excise\C>
复制代码
|
|