华师一附中OI组

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

20141021初级班训练题

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
#
发表于 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

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
18#
发表于 2014-11-1 17:23:04 | 只看该作者
clivia 发表于 2014-10-25 15:17
第三题变式解:

正确!+1
回复 支持 反对

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
17#
发表于 2014-11-1 17:23:03 | 只看该作者
clivia 发表于 2014-10-25 15:17
第三题变式解:

正确!+1
回复 支持 反对

使用道具 举报

1

主题

13

帖子

62

积分

注册会员

Rank: 2

积分
62
16#
发表于 2014-10-28 20:06:10 | 只看该作者

好吧,我淡定……
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1592

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1592
15#
发表于 2014-10-25 19:47:13 | 只看该作者
clivia 发表于 2014-10-25 14:11
这里目睹了老师回复的全过程,只能默默地为你流下一滴汗……

习惯就好……
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

1

主题

13

帖子

62

积分

注册会员

Rank: 2

积分
62
14#
发表于 2014-10-25 15:17:36 | 只看该作者
第三题变式解:
  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.         if(i%2==1)
  10.             s=s+a;
  11.     }
  12.     cout<<s;
  13.     return 0;
  14. }
复制代码
回复 支持 反对

使用道具 举报

1

主题

13

帖子

62

积分

注册会员

Rank: 2

积分
62
13#
发表于 2014-10-25 14:11:06 | 只看该作者
hr567 发表于 2014-10-22 21:33
是的………………

这里目睹了老师回复的全过程,只能默默地为你流下一滴汗……
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1592

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1592
12#
发表于 2014-10-22 21:33:36 | 只看该作者
diggersun 发表于 2014-10-21 18:59
第三题 完美做法,千万不要蠢到用两重循环,BTW 楼上的初中生,你的C++是不是那个巨牛的Diggersun老师教的 ...

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

使用道具 举报

4

主题

68

帖子

1592

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1592
11#
发表于 2014-10-22 21:02:59 | 只看该作者
admin 发表于 2014-10-21 16:49
楼上真是个牛人呀!还是在初中生就这么牛了!
不过,不建议写这些东西 i/=j;++j;
为了程序的清晰,初学者 ...

谢谢老师的表扬,我最早在《C++ Primer》上看到的程序都是把“++”写在前面的,而且很多样例程序里用的是复合符号,所以习惯这么写了。
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

4

主题

68

帖子

1592

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1592
10#
发表于 2014-10-22 20:59:06 | 只看该作者
木灵时雨 发表于 2014-10-21 18:21
最后是return....目测你打错了

谢谢你的提醒,我马上就把它改过来。
这个人很懒,不想写签名。
回复 支持 反对

使用道具 举报

61

主题

147

帖子

563

积分

超级版主

Rank: 8Rank: 8

积分
563
9#
发表于 2014-10-21 19:17:12 | 只看该作者
  1. #include<iostream>
  2. using namespace std;
  3. long long s,a,aa,i,k;
  4. int main()
  5. {
  6.     cin>>a>>k;
  7.     for (i=1;i<=k;i++)
  8.     {
  9.         aa=10*aa+a;
  10.         s=s+aa;
  11.     }
  12.     cout<<s;
  13.     return 0;
  14. }
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 19:25 , Processed in 0.114393 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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