首页 > 其他 > 详细

NOIP(四)

时间:2019-07-20 18:57:43      阅读:90      评论:0      收藏:0      [点我收藏+]
 1 //4.19
 2 /**
 3 输入n,计算s = 1! + 2! +...+n!的末6位。 
 4 4! = 4 * 3 * 2 * 1 
 5 测试样例:
 6 样例输入:10
 7 样例输出:37913 
 8 */
 9 #include <iostream>
10 using namespace std;
11 int main(){
12     int n;
13     cin >> n;
14     /**
15     计算阶乘之和
16     1.某数n的阶乘 
17     2.阶乘和 
18     */
19     int sum = 1,k = 1;//k表示某数的阶乘,sum表示阶乘之和 
20     for(int i = 1;i <= n;++i){
21         //4!+3!+2! +1 = 24 + 6 + 2 + 1
22         k *= i;
23         sum += k;
24     }
25     cout << sum << endl;
26     return 0;
27 }
 1 #include <iostream>
 2 using namespace std;
 3 //阶乘之和末6位 
 4 int main(){
 5     int n,s;//n个正整数,s的阶乘之和 
 6     cin >> n;
 7     for(int i = 1;i <= n;++i){
 8         int factorial = 1;
 9         for(int j = 1;j <= i;++j){
10             factorial *= i;
11             cout << factorial << "*" << endl;
12         }
13         s += factorial;
14     }
15     printf("%d\n",s%1000000);
16     return 0;
17 }
 1 #include <iostream>
 2 using namespace std;
 3 /**
 4 求出e的值:
 5 e = 1 + 1/1! + 1/2! + 1/3!+....+ 1/n!
 6 求e的值,保留小数点后10位。
 7 */ 
 8 int main(){
 9     int n;
10     cin >> n;
11     //sum += i/i! + 1
12     double e = 1;
13     int fenmuSum = 1;
14     for(int i = 1;i <= n;i+=2){
15         fenmuSum *= i;
16         e = e * 1.0/fenmuSum;
17     }
18     printf("%.10lf",e);
19     return 0;
20 }
 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int n;
 5     cin >> n;
 6     double a[n];//成绩 
 7     int b[n];//编号 
 8     double sum = 0;//分数总和 
 9     for(int i = 0;i < n;i++){
10         scanf("%lf",&a[i]);//获取每个同学的成绩 
11         sum += a[i];//算总成绩 
12         b[i] = i + 1; //存编号 
13     }
14     //求平均分 
15     double avg = sum/(n*1.0);
16     //判断哪些编号的学生成绩是比平均分低的?
17     for(int j = 0;j < n;j++){
18         if(a[j] < avg){
19             printf("%d ",b[j]);
20         }
21     } 
22     cout << endl;
23     for(int j = 0;j < n;j++){
24         if(a[j] < avg){
25             printf("%.2lf ",a[j]);
26         }
27     } 
28     return 0;
29 }
 1 /**
 2 一维数组定义方式:
 3 类型标识符 数组名[常量表达式] 
 4 int a[3];
 5 int a[3] = {0};
 6 a[0] a[1] a[2]
 7 for(int i = 0;i <= 3;i++){
 8     ArrayIndexOutOfBoundsException()越界 
 9     a[i]
10 }
11 */
12 #include <iostream>
13 #include <cstring>
14 using namespace std;
15 int main(){
16     int a[10];
17     memset(a,0,sizeof(a));//初始化数组值都变成0 
18     for(int i = 0;i < 10;i++){
19         cout << a[i] << " ";
20     }
21     
22     return 0;
23 }
 1 /**
 2     //输入一个整数n代表同学的数量
 3     //输入n个同学的语文、数学、英语成绩 
 4     // 4
 5     88     99     100    
 6     100 99     98   
 7     87     67     88 
 8     78     65     43
 9     
10     1 4 7 10语文
11     2 5 8 11数学
12     3 6 9 12英语 
13 */
14 #include <iostream>
15 #include <cstring>
16 using namespace std;
17 int main(){    
18     int n;
19     cin >> n;
20     double y[n],s[n],yy[n];
21     for(int i = 0;i < n;i++){
22         cin >> y[i] >> s[i] >> yy[i];
23     }
24     
25 //    double a[3*n];
26 //    for(int i = 0;i < 3*n;i++){
27 //        scanf("%lf",&a[i]);
28 //    }
29 //    
30 //    for(int i = 0;i < 3*n;i+=3){
31 //        //语文成绩 
32 //        printf("%.2lf",a[i]);
33 //    }
34     return 0; 
35 } 
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 /**
 5 与指定数字相同的数的个数
 6 输入 :4
 7 输入: 2 3 1 2 2 3 1 2
 8 输入:2
 9 输出:4 
10 */ 
11 int main(){
12     
13     return 0;
14 }
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <cmath>
 5 #include <algorithm>
 6 using namespace std;
 7 /**
 8 统计n个同学的身高,按身高从高到低排序,且输出身高最矮的那位同学的编号。
 9  
10 输入 :4
11 输入: 170 190 165 143
12 
13 //算法 
14 
15 输出:190 170 165 143
16 输出:4
17 
18 
19 交换数组的两项:swap(a[i],a[i+1]) 
20 排序:sort(a+1,a+n) 
21 */ 
22 int main(){
23     int n;
24     cin >> n;
25     double a[n];//a身高,
26     int b[n];//b编号 
27     for(int i = 0;i < n;i++){
28         scanf("%lf",&a[i]);
29         b[i] = i + 1;
30     } 
31     for(int k = 0;k < n;k++){
32         if(a[k] < a[k + 1]){
33             swap(a[k],a[k + 1]);
34             swap(b[k],b[k + 1]);
35         }
36     }
37     for(int j = 0;j < n;j++){
38         printf("%.2lf ",a[j]);
39     }
40     cout << b[n-1] << " ";
41     /**
42         1       2      3      4 
43         160 152 178 190
44     */
45     return 0;
46 }
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <cmath>
 5 #include <algorithm>
 6 using namespace std;
 7 //1-2018中包含多少个含8的数字 
 8 int main(){
 9     int n,c = 0;
10     cin >> n;
11     for(int i = 1;i <= n;i++){
12         if(i % 10 == 9){//个位 
13             c++;
14         }else if((i/10) % 10 == 9){//十位 
15             c++;
16         }else if(i/100%10 == 9){//百位
17             c++;
18         }
19     }
20     cout << c << endl;
21     s = 19 * (20 - 2) + 200 + 2 = 202 + 18*19 = 202 + 342 = 544
22     
23     2020 20
24     1-100 ----> 1
25     100-300 ---->12 
26     300 - 500---->2
27     500-700 ---> 3
28     900-1199 ---> 2
29     1200-1500---->12
30     1500-1999--->5
31     2000-2020 ---->21
32 
33 
34     
35     
36         
37     return 0;
38 }

 

NOIP(四)

原文:https://www.cnblogs.com/huihuilaoshi/p/11218639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!