zoukankan      html  css  js  c++  java
  • 第十一周项目4-特殊三位数

    输出满足条件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

  • 相关阅读:
    Emacs 安装 jedi
    PHP+ MongoDB
    Debian 7 安装 Emacs 24.3
    在Code first中使用数据库里的视图
    Emacs安装auto-complete
    Debian 7.4 中配置PHP环境
    ASP.NET MVC 下载列表
    JDicom使用指南
    Windows常用的DOS命令
    Entity Framework问题总结
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567636.html
Copyright © 2011-2022 走看看