会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
spring学习笔记
算法竞赛入门经典 2.2 循环结构程序设计
//例题2-2 3n+1问题 //猜想:对于任意大于1的自然数n,若n为奇数,则将n变成3n+1,否则变成一半 //经过若干次这样的变换,一定会使n变成1.例如3->10->5->16->8->4->2->1 //输入n,输出变换的次数。n≤10^9. //样例输入:3 //样例输出:7 #include<iostream> using namespace std; int main() { int n,count=0; //初始count=0 cin>>n; while(n>1) { if(n%2==1) n=n*3+1; else n/=2; count++; //计数器 cout<<n<<endl; //输出中间结果 } cout<<count<<endl; return 0; } //例题2-3 阶乘之和 //输入n,计算S=1!+2!+3!+……+n!的末6位(不含前导0),n≤10^6 //程序2-5 阶乘之和 #include<iostream> using namespace std; int main() { int i,j,n,S=0; cin>>n; for(i=1;i<=n;i++) { int factorial=1; for(j=1;j<=i;j++) factorial*=j; S+=factorial; //cout<<S<<endl; } cout<<S%1000000<<endl; return 0; } //程序2-6 阶乘之和(2) #include<iostream> #include<iomanip> #include<ctime> using namespace std; int main() { const int MOD=1000000; int i,j,n,S=0; cin>>n; for(i=1;i<=n;i++) { int factorial=1; for(j=1;j<=i;j++) factorial=(factorial*j % MOD); S=(S+factorial)%MOD; } cout<<S<<endl; cout<<"Time used=" <<setiosflags(ios::fixed)<<setprecision(2) <<(double)clock()/CLOCKS_PER_SEC<<endl; return 0; }
posted on
2012-03-25 19:31
spring学习笔记
阅读(
201
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
联系
订阅
管理
公告