首页 > 其他分享 >水仙花数

水仙花数

时间:2023-07-26 14:32:53浏览次数:35  
标签:判断 last 数字 cubic 循环 水仙花

 进行水仙花数讲解

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身例如

1^3 + 5^3+ 3^3 = 153;

水仙花数_赋值


直接取值判断

for 循环 i从100逐渐加一 到1000 

a 取i的个位数 b 取i的十位数 c 取i的百位数 

if分支语句 判断 i是否满足 水仙花数

最后将i 打印在 屏幕上 

水仙花数_while循环_02

依次取数判断

创建 i j cubic last ;j cubic last 作为判断数字 i作为目标数字 

for 循环 i从100逐渐加一 到1000 

然后让j赋值等于i 进入 while循环 j>0 所以 j等于0时终止

last 等于j的最后一位的数字 (第一词进入就是个位数)然后将j的三次方 赋值于cubic 再将除于十列:123/10=12.....3

再将值赋值于j 再一次循环 依次取一个数字进行 立方相加 如果i等于cubic 则打印i


两者的区别 

分别 非常直接 直接将整数的每个位置的数字直接取出 在存储 然后再进入 if判断 相当于一共储蓄4的变量 占用过多内存 但是思维简单 

循环 在判断的时候只会有两个变量在储蓄 内存储蓄较小 但是思维性很强训练 


















标签:判断,last,数字,cubic,循环,水仙花
From: https://blog.51cto.com/u_16178260/6855984

相关文章

  • Python 实现水仙花数
    水仙花数水仙花数(Narcissisticnumber)也被称为超完全数字不变数(pluperfectdigitalinvariant,PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrongnumber),水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:1^3+5^3+3^3=153。根据定义可知:水......
  • 水仙花数
    intSum(inttmp,intn){ intj=1; intsum=0; while(tmp) { intret=1; inttmp2=0; for(j=1;j<=n;j++) { tmp2=ret*tmp%10; } sum+=tmp2; tmp/=10; } returnsum;}intmain(){ inti=0; for(i=0;i<=100000;i++) { //判......
  • 水仙花数
    一、问题描述水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身,例如:13+53+3^3=153。输出所有的水仙花数。二、设计思路“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是100~999。对应的循环条件如下:for(n=100;n<1000;n++){……}......
  • 水仙花数
    ```#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<math.h>main(){   intm[16],n,i,t,a;   for(n=100;n<=999;n++)      //穷举n的取值范围*   {       t=0;       a=n;       for(i=0;a......
  • 26水仙花数
      #include<stdio.h>#defineINTEGER_MAXIMUM999//数字范围,最大值#defineINTEGER_MINIMUM100//最小值intif_narcissistic_number(intnum);intmain(){inti=0;for(i=INTEGER_MINIMUM;i<=INTEGER_MAXIMUM;i++){if(if_narcissistic_......
  • 3.5 水仙花数
    第一部曲:利用枚举,for循环判断每个三位数是否是水仙花数,如果是就输出,不是继续循环。第二部曲: 第三部曲:for(i=100;i<1000;i++) { a=i/100;//百位数 b=(i/10)%10;//十位数 c=i%10;//个位数 if(i==a*a*a+b*b*b+c*c*c)//判断是否为水仙花数 printf("%d\n",i); }第四......
  • 3.5 水仙花数
    #include<stdio.h>intmain(){inthun,ten,ind,n;printf("resultis:");for(n=100;n<1000;n++)/*整数的取值范围*/(hun-n/100;ten-(n-hun*100)/10;ind=n%10;if(n==hun*hun*hun+ten*ten*ten+ind*ind*ind)/*各位上的立方和是否与原数n相等*/printf("%d......
  • 3.5水仙花数
    1.问题描述输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如,153是“水仙花数”,因为153=13+13+33。2.代码#include <stdio.h> int main(){   int a, b, c; for (int i = 100; i <= 999; i++) { a = i / 100; b =......
  • 水仙花数
    输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如,153是“水仙花数”,因为153=1^3+5^3+3^3。水仙花数是一个三位数,我们的循环要从100开始到999,我们只需要让数除以100就可得到百位上的数,数除以10再对10求余就可得到十位上的数,数对10求余......
  • 水仙花数
    自然语言解决问题:根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为),若与给出的三位数相等三位数为“水仙花数”,反之,则不是流程图: 具体代码:#include<stdio.h>intmain(){ inti,a,b,c,k=0; for......