【编程小题目3】求解水仙花数

题目:打印出100 - 999 之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:

   153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

  int i,j, count = 0;

  int n,m,k;

  for(i = 100; i < 1000; i++)

  {

    n = i % 10;

    m = (i / 10) % 10;

    k = (i / 100) % 10;

    j = (n * n * n) + (m * m * m) + (k * k * k);

    if (i == j)

    {

      count++;

      cout << setw(5) << i;

      if(count % 5 == 0)

      {

        cout << endl;

      }

    }

  }

  cout << endl << "水仙花数总个数为:" << count << endl;

  return 0;

}

时间: 2024-10-07 20:32:44

【编程小题目3】求解水仙花数的相关文章

【编程小题目8】求解完数

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 找出100以内的所有完数. 分析:本质还是求质因数. #include <iostream> using namespace std; bool IsPerfect(int n){ int i, j = 0; int Temp = n,Sum = 1; int arr[100] = {'0'}; for(i = 2; i <= n; i++) { if(i == n) { arr[j

【编程小题目1】求解斐波拉契数列问题

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”.Fibonacci 数列定义:n = 1,2 时,fib(n) = 1n > 2 时,fib(n) = fib(n-2) + fib(n-1) // 递归算法求解Fibonacci 数列 #i

【编程小题目2】求解素数

题目:判断101-200之间有多少个素数,并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数. //连续整除法求解素数 #include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { int i, j, count = 0; for(i = 101; i <= 200;

【编程小题目5】求解最大公约数和最大公倍数

题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 程序分析:利用辗除法求最大公约数:最大公倍数等于m * n / Gcd(m,n). #include <iostream> using namespace std; int main() { int n, m; int k,r = 1; cout << "Plese input the number n and m:"; cin >> n >> m; k = n * m; whil

【编程小题目4】求解质因数

题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n != k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. #include <iostream> using namespace std; int

【编程小题目6】字符数统计

题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. #include <iostream>#include <string>using namespace std; int main(){ const int size = 100; char ch[size]; int CharNum = 0, DigNum = 0, NullNum = 0, OtherNum = 0;  for(int i = 0; i < size; i++) { ch[i] =

【编程小题目7】求s=a+aa+aaa+aaaa+aa...a的值

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制 #include <iostream>#include <string>using namespace std; long Function(int number, int n){ if(n == 1) { return number; } else { return Function(number ,n - 1) *

Python小代码_9_求水仙花数

for i in range(100, 1000): ge = i % 10 shi = i // 10 % 10 bai = i // 100 if ge ** 3 + shi ** 3 + bai ** 3 == i: print(i, end=' ') #输出结果 #153 370 371 407 原文地址:https://www.cnblogs.com/chuangming/p/8467677.html

2017华为机试题--水仙花数

等了一个月终于等到华为给安排的实习生在线机试,把自己做的三道题记录了一下,也方便日后复习.这篇是第一题,没有什么特别的难度,经典的水仙花数题. 题目描述:水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身.(例如:13+53+33=153),要求:输出1000范围内所有水仙花数及水仙花数之和. 输入描述:无 输出描述:1000以内所有水仙花数及总和. 输出例子: 第1个水仙花数:xxx 第2个水仙花数:xxx 第3个水仙花数:xxx ... 水仙花数总和为:xxx 1 p