C语言与水仙花数

C语言与水仙花数

水仙花数:前提三位数,“个位数的立方”加上“十位数的立方”加上“百位数的立方”恰好等于这个数。

我们来用C语言书写水仙花数:

方法一

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,j,k;
    for(i = 1;i<=9;i++){      //三位数的百位
        for(j = 0;j<=9;j++){    //三位数的十位
            for(k = 0;k<=9;k++){ //三位数的个位
                if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
                    printf("%d  ",i*100+j*10+k);
            }
        }
    }
    system("pause");
    return 0;
}

主要的思路:

既然这个数是三位数,可以先将100到999的所有的数得到,然后再做if判断。

方法二

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x,a,b,c;
    for(x=100;x<=999;x++){
        a=x/100;  //百位
        b=x/10%10;//十位
        c=x%10;   //个位
        if(x==a*a*a+b*b*b+c*c*c)
            printf("%d ",x);
    }
    system("pause");
    return 0;
}

这里主要是遍历所有的三位数,然后通过特定的方式得到三位数字,最后判断。

时间: 2024-10-15 06:32:43

C语言与水仙花数的相关文章

C语言 &#183; 4-3水仙花数

问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1^3+5^3+3^3. 样例输入 一个满足题目要求的输入范例.例:无 样例输出 153xxxxxx 代码如下: 1 #include<stdio.h> 2 int main(){ 3 int a,b,c; 4 for(int i=100; i<1000; i++){ 5 a = i / 100 % 10; 6 b = i / 10 % 10; 7 c = i / 1 %

用C#语言实现水仙花数

1000以内的水仙花数有哪些 for (int i = 100; i <= 999; i++) { int a = i / 100 % 10; int b = i / 10 % 10; int c = i % 10; if (a*a*a+b*b*b+c*c*c==i) { Console.WriteLine("1000以内的水仙花数有"+i); } } Console.ReadLine(); 输出之后 控台台显示 153 370 371 407

C语言——求水仙花数

昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业.其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来. 原题 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身. 解题 思路 初始化i=100. ①取i的各位数,百位a,十位b,个位c. ②判断i==a∧3+b∧3+c∧3 是否成立 ③如果成立则输出,否则不输出. ④i=i+1,当i小于1000重复①,否则结束. 关键算法:取任意三位数的各位数 算法一:除减法 ①将数除以100,由整型数据特点,小数点后被

C语言输出水仙花数

#include <stdio.h> #include <stdlib.h> #include <math.h> int main() {  int a = 0;  int b = 0;  int c = 0;  int i;  for (i = 100; i < 1000; i++)  {   a = i % 10;   b = i / 100;   c = (i - b*100)/10;   if ((pow(b, 3) + pow(c, 3) + pow(a

用c#语言编写水仙花数

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication1  {          class Program           {                  static void Main(string[] args)                   { 

使用C#语言实现输出1000以内的水仙花数

所谓水仙花数,是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身,例如:153=13+53+33.首先,我们应该解决的关键问题是,怎么通过C#语言判断一个数是不是水仙花数?既然水仙花数的定义是每个位上的数字的n次幂之和等于它本身,那么我们需要先分别得到一个数每个位上的数字,然后判断每个位上的数字的n次幂之和是否等于等于它本身.取出百位的数字可以使用 int a=i/100%10:(其中变量a存储百位数字.先将变量i中的值除以100,因为被除数和除数都是int类型的值,所以得到值

水仙花数&amp;素数&amp;质因数分解的C语言实现

最近,我翻了一下之前的C语言教材,看了三个有意思的小程序,包括:寻找"水仙花数".判断某数是否为素数.对一个数进行质因数分解.我想把这三个东西放到一个程序中,便写下了此文. 算法步骤 1. 寻找"水仙花数". "水仙花数"是指一个三位数,其各位数字的立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 2. 判断某数是否为素数. 素数是指只能被1和它本身整除的数,判断一个数是否为

C语言输出100到999中所有的水仙花数

------------------------------------------------------------------------------------------------------ 水仙花数只是"自幂数"的一种,严格来说三位数的3次幂数才成为水仙花数. 附: 一位自幂数:独身数 两位自幂数:没有 三位自幂数:水仙花数 四位自幂数:四叶玫瑰数 五位自幂数:五角星数 六位自幂数:六合数 七位自幂数:北斗七星数 八位自幂数:八仙数 九位自幂数:九九重阳数 十位自幂数:

用python语言来判断一个数是否是水仙花数?

#用python语言来判断一个数是否是水仙花数? #水仙花数: # 1) 一个三位正整数 ( 即取值区间 [100,1000) ) # 2) 个位数字的立方+十位数字的立方+百位数字的立方=它本身  (即数字 abc = a**3 + b**3 + c**3) 代码: for a in range(1,10):    #定义百位数取值区间 (1,9)     for b in range(10):    #定义十位数取值区间 (0,9)         for c in range(10):