首页 > 其他分享 >求n位的水仙花数

求n位的水仙花数

时间:2023-11-16 21:32:49浏览次数:25  
标签:10 10.0 int pow sum 位数 水仙花

#include<stdio.h>

#include<math.h>

int main()

{

int n, i, j;

scanf_s("%d", &n);

i = (int)pow(10.0, n - 1);\\n位数的开始,如n为3则i为100

j = (int)pow(10.0, n) - 1;\\n位数的结束,如n为3则j为999

int sum = 0;

for (i; i <= j; i++)\\对n位数的每一个数进行判断是否为水仙花数

{

 int sum = 0;\\用来储存各个位数上数字的立方和

 int k = 1;

 int  a;

 int t = i;

 for (k; k <= n; k++)\\分离各个数位,注意分离是倒着分离的,如153,分离顺序为3,5,1

 {

  if (k == 1) a = t % 10;//分离首位(即个位)

  else if (k != n) {

   a = t / 10 % 10;//分离中间位数的数字

   t = t / 10;//为下一次循环的t赋值

  }

  if (k == n)a = t / 10;//分离最后一位

  sum += a * a * a;//求立方和

 }if (sum == i)printf("%d\n", i);//判断是否是水仙花,如果是则打印出来

}

return 0;


}

标签:10,10.0,int,pow,sum,位数,水仙花
From: https://blog.51cto.com/u_16315967/8432953

相关文章

  • 水仙花数
    #include<stdio.h>#include<math.h>intmain(){ inta,b,c,n1; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) { n1=a*100+b*10+c; if(n1==pow(a,3)+pow(b,3)+pow(c,3)) p......
  • 判断一个数是否是水仙花数
    #include<stdio.h>intmain(){intm,a,b,c,d;scanf_s("%d",&m);a=(int)(m/100);b=(int)((m-a100)/10);c=(int)(m-100a-10b);d=(a*aa)+(b*bb)+(c*cc);//printf("%d%d%d%d%d",m,a,b,c,d);if(m==d){......
  • 水仙花数
    水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153......
  • 水仙花数的打印(仅个人探索)
             详解在代码中已标示,数据范围可更改            //自己摸索的水仙花数(φ(◎ロ◎;)φ)#include<tgmath.h>#include<math.h>intmain(){ intsum=0; inti=0;//floor为向下取整符号,对数函数算出的指数即位数减一 头......
  • 7-2 水仙花数
    目录目录目录题目思路代码第一次未通过所有测试点评测详情分析原因第二次通过所有测试点测试详情题后小知识题目水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如153=1^3+5^3+3^3。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行......
  • 送你一朵【水仙花数】
    文章目录前言一、题目二、思路分析:二、代码分析总结前言水仙花性喜温暖、湿润、排水良好的环境。在中国已有一千多年栽培历史,为传统观赏花卉。水仙花数(Narcissisticnumber)也被称为超完全数字不变数(pluperfectdigitalinvariant,PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗......
  • C语言-水仙花数
    计算100-1000内的水仙花#include<stdio.h>//水仙花数boolshuixianhua(intnum); intmain(){ inti; for(i=100;i<1000;i++){ if(shuixianhua(i)==1){ printf("%disashuixianhuanum.\n",i); } } return0; }boolshuixianhua(in......
  • 输出100-999之间所有的水仙花数。水仙花数指的是:各位数字立方和等于该数本身例如:153=1
    #include<stdio.h>intmain(){ inti,b0,b1,b2; intcount=0; for(i=100;i<1000;i++) { b0=i/100; b1=(i-b0*100)/10; b2=i%10; if(i==((b0*b0*b0)+(b1*b1*b1)+(b2*b2*b2))) {  count++;  printf("%d\n",i); } } printf("水仙花个数是:%d",co......
  • 用python求100到999以内的水仙花数(不用除法求各项)
    c=0forainrange(100,1000):forbinstr(a):a1=int(b)c=c+a1**3ifa==c:print(a)c=0输出结果为153370371407使用for循环来取数字中的每一位,不过数字要先化为str格式来取然后再化为int格式来赋值,要注意c的值每一次......
  • C语言求1000以内所有的水仙花数
    求1000以内所有的水仙花数何为水仙花数一个3位整数的各位数字的立方之和等于这个整数,称之为“水仙花数”。例如:153是水仙花数,因为153=1*1*1+5*5*5+3*3*3。先看代码#include<stdio.h>#include<math.h>intmain(){inti,a,b,c,d;for(i=100;i<1000;i++)......