华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6320|回复: 22
打印 上一主题 下一主题

20141021初级班训练题

[复制链接]

738

主题

1485

帖子

5422

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5422
跳转到指定楼层
楼主
发表于 2014-10-20 10:58:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、分解质因数:输入一个正整数,将它分解质因数,比如 90=2*3*3*5;
2、输入十个数字,求其中最大的那个数字;
3、1!+2!+3!+...+20!的值;
4、s=1+2+4+7+11+**+N,其中N是不大于100的最大整数,求S。
5、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,最后一个数字长度为k。例如2+22+222+2222+22222(此时共有5个数相加),输入a,k,求S
回复

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
推荐
发表于 2014-10-21 18:59:02 | 只看该作者
第三题 完美做法,千万不要蠢到用两重循环,BTW 楼上的初中生,你的C++是不是那个巨牛的Diggersun老师教的?
  1. #include<iostream>
  2. using namespace std;
  3. long long s=0,a=1,i,j;
  4. int main()
  5. {
  6.     for (i=1;i<=20;i++)
  7.     {
  8.         a=a*i;
  9.         s=s+a;
  10.     }
  11.     cout<<s;
  12.     return 0;
  13. }
复制代码
回复 支持 1 反对 0

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
推荐
发表于 2014-10-21 18:54:41 | 只看该作者
改进第二题  求次大值
  1. #include<iostream>
  2. using namespace std;
  3. int x1,x2,i,max1,max2;
  4. int main()
  5. {
  6.     cin>>x1>>x2;
  7.     if (x1>x2){max1=x1;max2=x2;}
  8.     else {max1=x2;max2=x1;}
  9.     for (i=3;i<=10;i++)
  10.     {
  11.         cin>>x1;
  12.         if (x1>max1) {max2=max1;max1=x1;}
  13.         else if (x1>max2) {max2=x1;}
  14.     }
  15.     cout<<max2;
  16.     return 0;
  17. }
复制代码
回复 支持 1 反对 0

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
推荐
发表于 2014-10-21 18:50:30 | 只看该作者
第二题No1
  1. #include<iostream>
  2. using namespace std;
  3. int x,i,maxx;
  4. int main()
  5. {
  6.     cin>>x;maxx=x;
  7.     for (i=2;i<=10;i++)
  8.     {
  9.         cin>>x;
  10.         if (x>maxx) maxx=x;
  11.     }
  12.     cout<<maxx;
  13.     return 0;
  14. }
复制代码

  1. #include<iostream>
  2. using namespace std;
  3. int x,i,maxx;
  4. int main()
  5. {
  6.     maxx=-9999999;
  7.     for (i=1;i<=10;i++)
  8.     {
  9.         cin>>x;
  10.         if (x>maxx) maxx=x;
  11.     }
  12.     cout<<maxx;
  13.     return 0;
  14. }
复制代码
回复 支持 1 反对 0

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
推荐
发表于 2014-10-21 18:46:34 | 只看该作者
第一题:
  1. #include<iostream>
  2. using namespace std;
  3. int x,i;
  4. int main()
  5. {
  6.     cin>>x;cout<<x<<'=';
  7.     i=2;while (x%i!=0) i++;x=x/i;cout<<i;
  8.     while (x>1)
  9.     {
  10.         if (x%i==0) {x=x/i;cout<<'*'<<i;}
  11.         else i++;
  12.     }
  13.     return 0;
  14. }
复制代码
回复 支持 1 反对 0

使用道具 举报

4

主题

68

帖子

1607

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1607
6#
发表于 2014-10-20 21:35:52 | 只看该作者
沙发……
讲义上的题目。
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1607

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1607
7#
发表于 2014-10-20 21:47:13 | 只看该作者

第一题来了!

本帖最后由 hr567 于 2014-10-20 22:49 编辑
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int i, j = 2;
  6.     cin >> i;
  7.     cout << i << '=';
  8.     while(i % j != 0)
  9.         ++j;
  10.     cout << j;
  11.     i /= j;
  12.     while(i != 1)
  13.     {
  14.         if(i % j == 0)
  15.         {
  16.             i /= j;
  17.             cout << '*' << j;
  18.         }
  19.         else
  20.             ++j;
  21.     }
  22.     return 0;
  23. }
复制代码
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1607

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1607
8#
发表于 2014-10-20 21:52:41 | 只看该作者

第二题

本帖最后由 hr567 于 2014-10-20 22:49 编辑
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int i, j, k;
  6.     cin >> j; k = j;
  7.     for(i = 1; i < 10; ++i)
  8.     {
  9.         cin >> j;
  10.         if(j > k)k = j;
  11.     }
  12.     cout << k;
  13.     return 0;
  14. }
复制代码


这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1607

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1607
9#
发表于 2014-10-20 22:27:55 | 只看该作者

第三题

本帖最后由 hr567 于 2014-10-22 20:59 编辑
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int i, j = 1, s = 0;
  6.     for(i = 1; i <= 20; ++i)
  7.     {
  8.         j *= i;
  9.         s += j;
  10.     }
  11.     cout << s;
  12.     return 0;
  13. }
复制代码

这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1607

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1607
10#
发表于 2014-10-20 22:35:51 | 只看该作者

第四题

本帖最后由 hr567 于 2014-10-22 20:59 编辑
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int i, n, j = 1, s = 1;
  6.     cin >> n;
  7.     for(i = 0; j != n; ++i)
  8.     {
  9.         j += i;
  10.         s += j;
  11.     }
  12.     cout << s;
  13.     return 0;
  14. }
复制代码
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1607

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1607
11#
发表于 2014-10-20 22:45:14 | 只看该作者

第五题

本帖最后由 hr567 于 2014-10-20 22:52 编辑
  1. using namespace std;
  2. int main()
  3. {
  4.     int s = 0, i, k, a;
  5.     cin >> a >> k;
  6.     i = a;
  7.     while(k)
  8.     {
  9.         s += a;
  10.         a = a*10+i;
  11.         --k;
  12.     }
  13.     cout << s;
  14.     return 0;
  15. }
复制代码
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

738

主题

1485

帖子

5422

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5422
12#
 楼主| 发表于 2014-10-21 16:49:53 | 只看该作者
楼上真是个牛人呀!还是在初中生就这么牛了!
不过,不建议写这些东西 i/=j;++j;
为了程序的清晰,初学者还是老老实实的i=i/j; j++
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-12-26 12:46 , Processed in 0.174459 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表