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

水仙花数

时间:2023-06-08 19:13:25浏览次数:39  
标签:tmp 10 int sum while 水仙花 tmp2

int Sum(int tmp, int n)
{
int j = 1;

int sum = 0;
while (tmp)
{
int ret = 1;
int tmp2 = 0;
for (j = 1; j <= n; j++)
{
tmp2 = ret * tmp % 10;
}
sum += tmp2;
tmp /= 10;
}
return sum;
}
int main()
{
int i = 0;
for (i = 0; i <= 100000; i++)
{
//判断i是否为水仙花数(自幂数)
//1,计算i的 n位数;
int n = 1;
int tmp = i;
int sum = 0;
while (tmp > 9)
{
n++;
tmp = tmp / 10;

}
tmp = i;
sum = Sum(tmp, n);
//2,计算i的每一位数n次方之和 sum
/*tmp = i;
while (tmp)
{
sum += (int)pow(tmp % 10, n);
tmp /= 10;
}*/
//3,比较i == sum
if (i == sum)
{
printf("%d ", i);
}
}
return 0;
}

标签:tmp,10,int,sum,while,水仙花,tmp2
From: https://www.cnblogs.com/zrk-8008/p/17467406.html

相关文章

  • 水仙花数
    一、问题描述水仙花数是指一个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......
  • 利用递归输出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......