问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:main.cpp
* 作 者:何小乐
* 完成日期:2014年 11 月 6 日
* 版 本 号:v1.0
*
* 问题描述:列出符合条件的三位数
* 输入描述:若干个整数
* 程序输出:特殊三位数
*/
#include <iostream>
using namespace std;
int main()
{
long fac (int);
int a,b,c,x,n;
for (x=100; x<=999; x++) //穷举法列出n的所有可能
{
a = x/100; //a、b、c分别求得x的百、十、个位
b = (x/10)%10;
c = x%10;
n = fac(a)+fac(b)+fac(c);
if (n==x)
cout<<n<<'\t';
}
return 0;
}
long fac (int m) //利用递归函数写出阶乘算法
{
int y;
if (m==0||m==1)
y=1;
else
y = fac (m-1)*m;
return y;
}
运行结果:
学习小结:
除了fac函数以外,其他的基本上都是邵帅的代码,我感觉他写的程序就很清晰易懂:
1,构造穷举法,他只用了一个循环
2,处理问题的思路不错
3,在求百十个位数的算法也用的比我好