‘壹’ c语言怎么编写水仙花数
方法:先弄懂什么是水仙花数::
水仙花数是指一个n(>=3)位数字的数,它等于每个数字的n次幂之和。
3位水仙花数————先定义3个数其中一个为1--9;2个为0--9;(用for循环)
再用如果a定义为1--9那么用100*a来表示百位;如果b或者c定义是0--9那么用10*b或者10*c来表示十位;那么下面用c或者b来表示个位;
if(100*a+10*b+c==a*a*a+b*b+c) 如果满足这个条件那么:输出的printf("%d%d%d",a,b,c)就是3位数的水仙花数:
4位水仙花数方法同上:
刚写的:调试过了
#include <stdio.h>
int main(void)
{
int a,b,c,d;
system("cls");
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)
printf("%d%d%d\n",a,b,c);
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
if(1000*a+100*b+10*c+d==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
printf("%d%d%d%d\n",a,b,c,d);
getch();
}
或者这样:
#include <stdio.h>
int main(void)
{
int a,b,c,d;
system("cls");
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
{
if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)
printf("%d%d%d\n",a,b,c);
for(d=0;d<=9;d++)
if(1000*a+100*b+10*c+d==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
printf("%d%d%d%d\n",a,b,c,d);
}
getch();
}
‘贰’ 用C语言求水仙花数!
思路:求100到999直接的水仙花数,可以通过for循环依次遍历各数,分别求出每个数各位上数的立方和是否等于该数,等于该数说明是水仙花数,输出该数。
参考代码:
#include<math.h>
#include<stdio.h>
int main()
{
int i,a,b,c;
for(i=100;i<=999;i++){
a=i/100;//求百位上数
b=(i/10)%10;//求十位上数
c=i%10;//求个位上数
if(i==a*a*a+b*b*b+c*c*c)
printf("%d is right\n",i);
}
return 0;
}
/*
输出:
153 is right
370 is right
371 is right
407 is right
*/
‘叁’ 如何用C语言求水仙花数
#include <math.h>
#include <stdio.h>
int sxh(int i) {
if (((i/100)*(i/100)*(i/100)+((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%10)*(i%10)*(i%10))==i)
return 1;
else return 0;
}
int main() {
int q;
for(q=100;q<=999;q++) {
if(sxh(q)==1)
printf("%d 是水仙花数\n",q);
}
return 0;
}
水仙花数只有3位数才有可能
‘肆’ 水仙花数c语言求法
#include <stdio.h>
void main()
{
int i,a,b,c;
printf("水仙花数:\n");
for(i=100;i<=999;i++)
{ a=i/100 ;
b=(i-100*a)/10 ;
c=i-100*a-10*b;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
}
‘伍’ C语言水仙花数算法
#include<stdio.h>
intmain()
{
inti,j,k,n;
printf("水仙花数是:");
for(n=100;n<=999;n++)
{
i=n/100;
j=n%100/10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)//=改为==
//printf("%d",n);
//printf("");//以上两句合并为下面这一句,否则会有大量空格
printf("%d",n);
}
return0;}
‘陆’ c语言求水仙花数!!!!
#include"stdio.h"
intmain(intargc,char*argv[]){
intn,i,j,k,t,s,m,x;
printf("Pleaseentern(int2<n<8)... n=");
if(scanf("%d",&n)!=1||n<3||n>7){
printf("Inputerror,exit... ");
return0;
}
for(k=1,i=0;i<n;i++,k*=10);
for(i=k/10;i<k;i++){
for(s=0,t=i;t>0;t/=10){
for(x=1,j=t%10,m=n;m--;x*=j);
s+=x;
}
if(s==i)
printf("%d ",s);
}
printf(" ");
return0;
}
运行样例:
‘柒’ 水仙花数的c语言编程。
C语言具体实现水仙花过程如下:
一、问题描述:
输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。
二、问题分析:
根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
三、算法设计:
“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是 100〜999。对应的循环条件如下:
for(n=10; n<1000; n++) { //...... }
四、完整的代码:
‘捌’ 求水仙花数c语言
所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1^3 + 5^3+ 3^3。
下面是完整的C语言编程代码:
运行结果:
result is:153 370 371 407
(8)水仙花数c语言最快求法扩展阅读
常见水仙花数
水仙花数又称阿姆斯特朗数。
1、三位的水仙花数共有4个:153,370,371,407;
2、四位的四叶玫瑰数共有3个:1634,8208,9474;
3、五位的五角星数共有3个:54748,92727,93084;
4、六位的六合数只有1个:548834;
5、七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
6、八位的八仙数共有3个:24678050,24678051,88593477