第11周项目4-特殊三位数
2014-11-06 19:35
246 查看
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘畅
* 完成日期:2014年 11 月 6 日
* 版 本 号:v1.0
*
* 问题描述:请输出n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。;
* 输入描述: for语句自动找寻符合条件的值;
* 程序输出:n=a!+b!+c!;
*/
运行结果:
知识点总结:
用了函数,可以少写多少行代码啊。。。
学习心得:
在书上找到了求阶乘的代码,转换为函数却偷工减料只输入了当n>1时的情况,最后的结果是分段错误。。。好一个分段错误,吸取教训了.
真的醉了;题目都没看清就写,a、b、c分别是n的百、十、个位数。这个条件被忽视了..为自己的粗心感到自责,以后不会再犯了;错误已改正;感谢0哥的提醒。。
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘畅
* 完成日期:2014年 11 月 6 日
* 版 本 号:v1.0
*
* 问题描述:请输出n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。;
* 输入描述: for语句自动找寻符合条件的值;
* 程序输出:n=a!+b!+c!;
*/
<pre class="cpp" name="code">#include <iostream> using namespace std; long fac(int); int main() { int a,b,c,n; long x,y,z; for (n=100; n<=999; ++n) for (a=1; a<=9; ++a) for (b=0; b<=9; ++b) for (c=0; c<=9; ++c) { x=fac(a); y=fac(b); z=fac(c); if (n==x+y+z&&n==a*100+b*10+c) cout<<n<<"="<<a<<"!+"<<b<<"!+"<<c<<"!"<<endl; } cout<<endl; return 0; } long fac(int n) { long f; if (n<0) { cout<<"n<0,data error!"<<endl; f=-1; } else if (n==0||n==1) f=1; else f=fac(n-1)*n; return f; }
运行结果:
知识点总结:
用了函数,可以少写多少行代码啊。。。
学习心得:
在书上找到了求阶乘的代码,转换为函数却偷工减料只输入了当n>1时的情况,最后的结果是分段错误。。。好一个分段错误,吸取教训了.
真的醉了;题目都没看清就写,a、b、c分别是n的百、十、个位数。这个条件被忽视了..为自己的粗心感到自责,以后不会再犯了;错误已改正;感谢0哥的提醒。。
相关文章推荐