上机内容:输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。
上机目的:函数初体验
我的程序:
运行结果:
上机目的:函数初体验
我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 青岛农业大学理信学院
* All rights reserved.
* 文件名称:特殊三位数.cpp
* 作 者:幻影行者
* 完成日期:2013 年 8 月 2 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 问题描述:输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。
* 程序输出:略
* 问题分析:略
* 算法设计:略
*/
#include<iostream>
using namespace std;
long factorial(int);
int main()
{
int a,b,c,n; //a、b、c分别代表三位数的百、十、个位上的数
cout<<"满足条件n=a!+b!+c!的所有三位数:"<<endl;
for(int i=100;i<=999;++i)
{
a=i/100; //使用整除或取余分别得到百、十、个位上的数
b=(i/10)%10;
c=i%10;
n=factorial(a)+factorial(b)+factorial(c); //调用求阶乘的函数factorial(int x)
if(n==i)
{
cout<<i<<'\t';
}
}
cout<<endl;
return 0;
}
long factorial(int x) //定义求阶乘的函数
{
long sum=1;
for(int i=1;i<=x;++i)
{
sum*=i;
}
return sum;
}
运行结果: