第十一周项目4-特殊三位数

来源:互联网 发布:域名注册不用实名 编辑:程序博客网 时间:2024/06/05 11:55

输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数,并且用自定义函数实现求阶乘。

/* *Copyright (c) 2014,烟台大学计算机学院 *All gight reserved. *文件名称:temp.cpp *作者:邵帅 *完成时间:2014年11月5日 *版本号:v1.0*/#include <iostream>using namespace std;int main(){    long fac(int n);    int n, a, b, c, sum;    cout << "满足条件n=a!+b!+c!的所有三位数:";    for (n = 100; n <= 999; n++)    {        a = n / 100;        b = (n / 10) % 10;        c = n % 10;        sum = fac(a) + fac(b) + fac(c);        if (sum == n)            cout << n;    }    return 0;}long fac(int n){    int i, y = 1;    for (i = 1; i <= n; i++)        y = y * i;    return y;}
运行结果:



思路:要想求出符合题意的数字,要先构造一个阶乘的函数fac(),利用sum的变量, sum = fac(a) + fac(b) + fac(c),这样,利用穷举法列出符合题意的数字,本程序最关键的是如何求出百、十、个位数的数字:百位直接利用int整形的特殊性求出,十位利用/10再取/10的余数,个位直接取/10的余数。


@ Mayuko

0 0
原创粉丝点击