《算法竞赛入门经典》第二章 2.2

程序代码解析与理解
本文详细解析了程序2-4、程序2-5和程序2-6的代码逻辑,包括循环、条件判断、输入输出、数学运算等核心知识点,帮助读者深入理解C语言的基本语法和算法实现。

程序2-4

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5     int n, count = 0;
 6     scanf("%d",&n);
 7     while(n>1)
 8     {
 9         if(n % 2 ==1) n = 3*n +1;
10         else n/=2;
11         count++;
12     }
13     printf("%d\n",count);
14     return 0;
15 }

程序2-5

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5     int i, j, n, S = 0;
 6     scanf("%d",&n);
 7     for(i = 1;i<=n;i++)
 8     {
 9         int factorial = 1;
10         for(j = 1;j <=i;j++)
11         {
12             factorial *= j;
13         }
14         S +=factorial;
15     }
16     printf("%d\n",S % 1000000);
17     return 0;
18 }

 程序2-6

 1 #include<stdio.h>
 2 #include<time.h>
 3 int main()
 4 {
 5     const int MOD = 1000000;
 6     int i, j, n, S = 0;
 7     scanf("%d",&n);
 8     for(i = 1;i<=n;i++)
 9     {
10         int factorial = 1;
11         for(j = 1;j <=i;j++)
12         {
13             factorial = (factorial*j%MOD);
14         }
15         S = (S+factorial)%MOD;
16     }
17     printf("%d\n",S);
18     printf("Time used = %0.2lf\n",(double)clock() /CLOCKS_PER_SEC);
19     return 0;
20 }

 

转载于:https://www.cnblogs.com/LzKlyhPorter/p/4189460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值