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

水仙花数

时间:2023-05-24 21:34:04浏览次数:36  
标签:10 数字 水仙花 算法 100 整除

一、问题描述

水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身,例如:13+53+3^3=153。输出所有的水仙花数。

二、设计思路

  “水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是100~999。对应的循环条件如下:
for ( n=100;n<1000;n++)
{……}
(1)将n整除以100,得出n在百位上的数字hun。
  (2)将(n-i^{ \ast }100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten。
(3)将n对10取余,得出n在个位上的数字ind。
(4)求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。
  对于每个位置上的数值将其拆分的算法有很多种,根据不同情况选择不同算法(对于同一问题不同算法的效率有时会相差很多)。

三、程序设计图

四、代码实现

#include<stdio.h>
main()
{
int hun,ten,ind,n;
printf("resu;t is:");
for(n=100;n<1000;n++)
{
hum=n/100;
ten=(n-hum*100)/10;
ind=n*10;
if(n==hum*hum*hum+ten*ten*ten+ind*ind*ind)
printf("%d\t",n);
}
printf("|n");
}

 

标签:10,数字,水仙花,算法,100,整除
From: https://www.cnblogs.com/jais/p/17429574.html

相关文章

  • 水仙花数
    ```#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......
  • 利用递归输出100-10000之间的水仙花数
    <htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width,initial-scale=1.0&quo......
  • 水仙花数
    一问题描述一个三位数的各位的立方和为他本身的就是水仙花数,求出所有的水仙花数二设计思路进行从100到999的循环,在循环中求出他的百位十位个位然后条件语句判断是否符合条件。三程序流程图 四伪代码实现#include<iostream>usingnamespacestd;intmain(){ intx,y,z; fo......
  • 水仙花数
    一、问题描述: 二、设计思路:  三、程序流程图:   四、代码实现......