1.15 总复习

1.15 总复习

1. B2002 Hello,World!

【题目描述】
编写一个能够输出 Hello,World! 的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。

输入:无
输出:Hello,World!

#include<cstdio>
int main(){
    printf("Hello,World!");
    return 0;
}

2. P3954 [NOIP2017 普及组] 成绩

【题目描述】
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%。
牛牛想知道,这门课程自己最终能得到多少分。

输入格式
三个非负整数 A,B,CA,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100100 分。

输出格式
一个整数,即牛牛这门课程的总成绩,满分也是 100100 分。

输入样例:100 100 80
输出样例:90

输入样例:60 90 80
输出样例:79

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c;  cin>>a>>b>>c;
    cout<<a*0.2+b*0.3+c*0.5;
    return 0;
}

3. B2049 最大数输出

【题目描述】
输入三个整数,输出最大的数。

输入格式
输入为一行,包含三个整数,数与数之间以一个空格分开。

输出格式
输出一行,包含一个整数,即最大的整数。

输入样例:10 20 56
输出样例:56

数据规模与约定
对于全部的测试点,保证输入的整数均在 32 位有符号整型 (int/long int) 范围内。

#include<cstdio>
int main(){
    int a,b,c;
    scanf("%d%d%d", &a, &b, &c);
    int max=a;
    if(max<b) max=b;
    if(max<c) max=c;
    printf("%d", max);
    return 0;
}

4. P5711 【深基3.例3】闰年判断

【题目描述】
输入一个年份(大于 1582 的整数 ),判断这一年是否是闰年,如果是输出 1,否则输出 0。

输入样例:1926
输出样例:0

输入样例:2000
输出样例:1

#include<cstdio>
int main(){
    int year; scanf("%d", &year);
    if(year%400==0 || year%4==0 && year%100!=0){
        printf("1");
    } else{
        printf("0");
    }
    return 0;
}

5. P5716 【深基3.例9】月份天数

【题目描述】
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

输入样例:1926 8
输出样例:31

输入样例:2000 2
输出样例:29

#include<cstdio>
int main(){
    int year,month; scanf("%d%d", &year, &month);
    if(month==2){
        if(year%400==0||year%4==0&&year%100!=0) printf("29");
        else printf("28");
    }else if(month==4||month==6||month==9||month==11){
        printf("30");
    }else{
        printf("31");
    }
    return 0;
}

6. P5719 【深基4.例3】分类平均

【题目描述】
给定 n(n≤10000) 和k(k≤100),将从 1到 n 之间的所有正整数可以分为两类:
A 类数可以被 k整除(也就是说是 k的倍数),而 B类数不能。
请输出这两类数的平均数,精确到小数点后 1位,用空格隔开。

数据保证两类数的个数都不会是 0。

输入样例:100 16
输出样例:56.0 50.1

#include<iostream>
#include<iomanip>
#include<cstdio>
using namespace std;
int main() {
    int n,k,a=0,b=0,sum_a=0,sum_b=0;
    cin>>n>>k;
    for(int i=1; i<=n; i++) {
        if(i%k==0) {
            sum_a += i;
            a++;
        } else {
            sum_b += i;
            b++;
        }
    }
    printf("%.1lf %.1lf", (double)sum_a/a,(double)sum_b/b);
// cout<<fixed<<setprecision(1)<<(double)sum_a/a<<" "<<(double)sum_b/b;
    return 0;
}

7. P5724 【深基4.习5】求极差 / 最大跨度值

【题目描述】
给出 n(n≤100)和 n个整数 ai(0≤ai≤1000),求这 n个整数中的极差是什么。
极差的意思是一组数中的最大值减去最小值的差。

输入样例:

6
1 1 4 5 1 4

输出样例:

4
#include<bits/stdc++.h>
using namespace std;
int a[101];
int main(){
    int n; cin>>n;
    for(int i=0; i<n; i++) cin>>a[i];
    sort(a, a+n);
    cout<<a[n-1]-a[0];
    return 0;
}

8. P1428 小鱼比可爱

【题目描述】
人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。
请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

输入格式
第一行输入一个整数 nn,表示鱼的数目。
第二行内输入 n个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度。

输出格式
行内输出 n个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

输入样例:

6
4 3 0 5 1 2

输出样例:

0 0 0 3 1 2

说明/提示
对于 100% 的数据,n≤100。

#include<iostream>
using namespace std;
int a[101],b[101];
int main(){
    int n;cin>>n;
    for(int i=1; i<=n; i++){
        cin>>a[i];
        for(int j=1; j<i; j++){
            if(a[j]<a[i]) b[i]++;
        }
    }
    for(int i=1; i<=n; i++)  cout<<b[i]<<" ";
    return 0;
}

9. P1046 [NOIP2005 普及组] 陶陶摘苹果

【题目描述】
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10个苹果。
苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30厘米高的板凳,
当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知 10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,
请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入格式
输入包括两行数据。第一行包含 10个 100到 200之间(包括100和200)的整数
(以厘米为单位)分别表示 1010 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。
第二行只包括一个 100到 120之间(包含 100和 120)的整数(以厘米为单位),
表示陶陶把手伸直的时候能够达到的最大高度。

输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

输入样例:

100 200 150 140 129 134 167 198 200 111
110

输出样例:

5
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[10];
    for(int i=0; i<10; i++)    cin>>a[i];
    int h, ans=0; cin>>h;
    for(int i=0; i<10; i++){
        if(a[i]<=h+30)  ans++;
    cout<<ans;
    return 0;
}

10. P1059 [NOIP2006 普及组] 明明的随机数

【题目描述】
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,
他先用计算机生成了N个1到1000之间的随机整数(N≤100),
对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。
然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成"去重"与"排序"的工作。

输入格式
输入有两行,第1行为1个正整数,表示所生成的随机数的个数N
第2行有N个用空格隔开的正整数,为所产生的随机数。

输出格式
输出也是两行,第11行为11个正整数MM,表示不相同的随机数的个数。
第2行为 M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

输入输出样例
输入样例:

10
20 40 32 67 40 20 89 300 400 15

输出样例:

8
15 20 32 40 67 89 300 400
#include<bits/stdc++.h>
using namespace std;
const int N=1e4;
int a[N], b[N], cnt=0;
int main(){
    int n; cin>>n;
    for(int i=1; i<=n; i++){
        int x; cin>>x;
        a[x]=1;
    }

    for(int i=1; i<=1000; i++){
        if(a[i]==1) b[++cnt]=i;
    }
    cout<<cnt<<endl;
    for(int i=1; i<=cnt; i++) cout<<b[i]<<" ";
    return 0;
}

int main_ac(){
    int n; cin>>n;
    for(int i=0; i<n; i++) cin>>a[i];
    sort(a, a+n);//升序排序
    b[0]=a[0];
    for(int i=0; i<n-1; i++){
        if(b[cnt]!=a[i+1]){
            b[++cnt] = a[i+1];
        }
    }
    cout<<cnt+1<<endl;
    for(int i=0; i<=cnt; i++) cout<<b[i]<<' ';
    return 0;
}
posted @ 2021-08-24 15:42  HelloHeBin  阅读(567)  评论(0编辑  收藏  举报