c语言输入一个整数n输出所有的n位水仙花数

c语言输入一个整数n输出所有的n位水仙花数第6题,详细一点,谢谢

#include <stdio.h>
#include <math.h>
int main(){
int i,j=0,k,n,s=0,a[10];
scanf("%d",&n);
for(i=(int)pow(10.0,n-1);i<(int)pow(10.0,n);i++)
{
k=i;
while(k)
{
a[j]=k%10;
s+=(int)pow(double(a[j]),n);
k/=10;
j++;
}
if(s==i) printf("%d ",i);
j=0;s=0;
}
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言输入一个整数n输出所有的n位水仙花数
a[10];scanf("%d",&n);for(i=(int)pow(10.0,n-1);i<(int)pow(10.0,n);i++){k=i;while(k){a[j]=k%10;s+=(int)pow(double(a[j]),n);k\/=10;j++;}if(s==i) printf("%d ",i);j=0;s=0;

c语言 输入一个正整数n(3<=n<=7),输出所有的n位水仙花数?
int n,i,a,b=0,c1,c2,c3,c4,c5,c6,c7,s[1000];printf("输入位数:\\n");scanf("%d",&b);if(b<3||b>7) return 44;a=b;n=1;do{ n*=10;a--;}while(a);a=0;printf("%d\\n",b);for(i=n\/10;i<n;i++){ if(b==3){ c1=i%10;c2=i\/10%10;c3=i\/100;if(i==...

输入正整数n,输出所有的n位水仙花数,水仙数指n位正整数,它的各位数字...
水仙花数

c++题输入一个3到7的正整数n,输出所有n为数的水仙花数
一、水仙花数是指一个n位正整数(n>=3),如果这个数的每个位上的数字的n次幂之和等于它本身(例如:1^3 + 5^3 + 3^3 = 153),就称这个数为水仙数。所以,要判断一个数是不是水仙数,关键就是要取得各个位上的数字,然后累计它们的n次方和,再进行判断。取得各个位上的数字可以通过取余运...

c语言,输出所有的水仙花数的问题
首先,水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153或3^3+7^3+0^3=370)注意:是每个 位上 的数字。而你的原代码写的效果是,例如第一次循环1^3+10^3+100^3=111,这样的表示是错的,按定义应该是判断1^...

c语言中,如何输出所有的水仙花数
在C语言中,输出所有的水仙花数的步骤如下:1. 确定水仙花数的定义:水仙花数,也就是三位自幂数,指的是一个三位数,它的每个位上的数字的立方和等于它本身。2. 编写判断水仙花数的函数:这个函数需要提取输入数值的个位、十位和百位数字,计算它们的立方和,并与原数值比较以确定是否为水仙花数。3....

如何实现用C语言输出所有的“水仙花数”?
C语言具体实现水仙花过程如下:一、问题描述:输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。二、问题分析:根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的...

c语言中,如何输出所有的水仙花数
水仙花数即三位的自幂数。所谓自幂数,就是指一个 n 位数 ( n≥3 ),其每位上的数字的 n 次幂之和等于本身。所以水仙花数,首先是三位数,形式为abc,同时a,b,c的立方和值与原本数相同。类似的还有 四位自幂数:四叶玫瑰数 五位自幂数:五角星数 六位自幂数:六合数 等等。对于水仙花数的判断...

输出所有的“水仙花数”
水仙花数是指一个 n 位数 ( n>=3 ),它的每个位上的数字的 n 次幂之和等于它本身.所以n位数的水仙花数就是将其每一位的n次方相加.看是否等于其本身.三位的水仙花数共有4个:153,370,371,407;程序如下:#include<iostream> using namespace std;int main(){ int bit1,bit2,bit3;for(...

...水仙花数。输入3<=n<=7,输出所有的n位水仙花数。 为什么 我运行时...
s=1,没法继续下面的 m = 0; \/\/m每累加完一个数的记得清零 for(i=1;i<=n;i++) { h=b%10; \/\/每次改变b的值 m=m+power(h,n); b=b\/10; } if(m==s)

相似回答