洛谷刷题笔记1

洛谷刷题笔记1

题单

【入门2】分支结构

P5710 数的性质
题目描述

一些整数可能拥有以下的性质:

  • 性质 1:是偶数;
  • 性质 2:大于 4 且不大于 12。

小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x*,请问他们是否喜欢这个整数?

输入格式

输入一个整数 x(0\le x \le 1000)x(0≤x≤1000)

输出格式

输出这 4 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。

输入输出样例

输入 #1复制

12

输出 #1复制

1 1 0 0
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int input;
    cin>>input;
    int a,b;
    if(input%2==0){
        a=1;
    }else{
        a=0;
    }
    if(input>4&&input<=12){
        b=1;
    }else{
        b=0;
    }
    // 相对于大量的分支语句,使用逻辑运算符可以大幅度节省代码量
	printf("%d %d %d %d", a & b, a | b, (a && !b || b && !a), !a && !b);
    return 0;
}
P5711 闰年判断
题目描述

输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出 0。

输入格式

输入一个正整数 n*,表示年份。

输出格式

输出一行。如果输入的年份是闰年则输出 1,否则输出 0。

输入输出样例

输入 #1复制

1926

输出 #1复制

0

输入 #2复制

1900

输出 #2复制

0

输入 #3复制

2000

输出 #3复制

1

输入 #4复制

1996

输出 #4复制

1
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int year;
    cin>>year;
    int flag=0;
    // 闰年判断条件有两点:1.能被4整除且不能被100整除;2.能被400整除;
    if((year%4==0&&year%100!=0)||(year%400==0)){
        flag=1;
    }
    cout<<flag<<endl;
    return 0;
}

P5712 Apples

八尾勇喜欢吃苹果。她今天吃掉了 xx 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple 这个单词后面要加上代表复数的 s。你能帮她完成这个句子吗?

输入格式

输入一行一个自然数 x*x,表示吃掉的苹果数。

输出格式

根据题目要求输出。

输入输出样例

输入 #1复制

1

输出 #1复制

Today, I ate 1 apple.

输入 #2复制

3

输出 #2复制

Today, I ate 3 apples.
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int number;
    cin>>number;
    if(number>1){
        printf("Today, I ate %d apples.",number);
    }else{
        printf("Today, I ate %d apple.",number);
    }
    return 0;
}

P5713 洛谷团队系统

题目描述

在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间 5 分钟;而在洛谷团队中上传私有题目,每题只需要花费 3 分钟,但是上传题目之前还需要一次性花费 11 分钟创建与配置团队。现在要配置 n 道题目,如果本地配置花费的总时间短,请输出 Local,否则输出 Luogu

输入格式

输入一个正整数 n,表示需要配置的题目量。

输出格式

输出一行,一个字符串。如果本地配置花费的总时间短,请输出 Local,否则输出 Luogu

输入输出样例

输入 #1复制

2

输出 #1复制

Local

输入 #2复制

50

输出 #2复制

Luogu
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n=0;
    cin>>n;
    int resultMy,resultLuo;
    resultLuo=11+n*3;
    resultMy=n*5;
    if(resultMy>resultLuo){
        cout<<"Luogu";
    }else{
        cout<<"Local";
    }
    return 0;
}

P5714 肥胖问题题目描述

题目描述

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是,其中 m 是指体重(千克),h是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.5:体重过轻,输出 Underweight
  • 大于等于 18.5 且小于 24:正常体重,输出 Normal
  • 大于等于 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0,不要输出后缀 0。

请注意,保留六位有效数字不是保留六位小数。

输入格式

共一行。

第一行,共 2 个浮点数,m,n,分别表示体重(单位为 kg),身高(单位为 m)。

输出格式

输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight 情况的特别处理请参照题目所述。

输入输出样例

输入 #1复制

70 1.72

输出 #1复制

Normal
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double m,h;
    cin>>m>>h;
    double BMI=m/(h*h);
    if(BMI<18.5){
        cout<<"Underweight"<<endl;
    }else if(BMI>=18.5&&BMI<24){
        cout<<"Normal"<<endl;
    }else{
        cout<<BMI<<endl<<"Overweight"<<endl;
    }
    return 0;
}

P5715 三位数排序

题目描述

给出三个整数 a,b,c(0\le a,b,c \le 100)a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。

输入格式

输入三个整数 a,b,c,以空格隔开。

输出格式

输出一行,三个整数,表示从小到大排序后的结果。

输入输出样例

输入 #1复制

1 14 5

输出 #1复制

1 5 14

输入 #2复制

2 2 2

输出 #2复制

2 2 2
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[3]={0};
    cin>>a[0]>>a[1]>>a[2];
	sort(a,a+3);
	cout<<a[0]<<' '<<a[1]<<' '<<a[2]<<endl;
    return 0;
}

P5716 月份天数

题目描述

输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

输入格式

输入两个正整数,分别表示年份 yy 和月数 mm,以空格隔开。

输出格式

输出一行一个正整数,表示这个月有多少天。

输入输出样例

输入 #1复制

1926 8

输出 #1复制

31

输入 #2复制

2000 2

输出 #2复制

29
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int year,month;
    cin>>year>>month;
    int flag=0;
    // 闰年判断条件有两点:1.能被4整除且不能被100整除;2.能被400整除;
    if((year%4==0&&year%100!=0)||(year%400==0)){
        flag=1;
    }
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};  
    //定义月份对应天数数组
    if(flag==1){
        a[2]=29;
    }
    cout<<a[month];
    return 0;
}

P1085 不高兴的津津

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式

输入包括 77 行数据,分别表示周一到周日的日程安排。每行包括两个小于 1010 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式

一个数字。如果不会不高兴则输出 00,如果会则输出最不高兴的是周几(用 1, 2, 3, 4, 5, 6, 71,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

输入输出样例

输入 #1复制

5 3
6 2
7 2
5 3
5 4
0 4
0 6

输出 #1复制

3
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int r[7];
    for(int i=0;i<7;i++){
        int a,b;
        cin>>a>>b;
        r[i]=a+b;
    }
    int max=r[0];
    int n=0;
    for(int j=0;j<7;j++){
        if(r[j]>max){
            max=r[j];
            n=j+1;
        }
    }
    cout<<n<<endl;
    return 0;
}

P1909 买铅笔

题目背景

NOIP2016 普及组 T1

题目描述

P 老师需要去商店买 nn 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 33 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过 nn 支铅笔才够给小朋友们发礼物。

现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 nn 支铅笔最少需要花费多少钱。

输入格式

第一行包含一个正整数 nn,表示需要的铅笔数量。

接下来三行,每行用 22 个正整数描述一种包装的铅笔:其中第 11 个整数表示这种包装内铅笔的数量,第 22 个整数表示这种包装的价格。

保证所有的 77 个数都是不超过 1000010000 的正整数。

输出格式

11 个整数,表示 P 老师最少需要花费的钱。

输入输出样例

输入 #1复制

57
2 2
50 30
30 27

输出 #1复制

54

输入 #2复制

9998
128 233
128 2333
128 666

输出 #2复制

18407

输入 #3复制

9999
101 1111
1 9999
1111 9999

输出 #3复制

89991
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,a1,a2,b1,b2,c1,c2,a,b,c,z;
    scanf("%d",&n);//n是需要的数量
    scanf("%d %d",&a1,&a2);//a1是数量,a2是价格
    scanf("%d %d",&b1,&b2);
    scanf("%d %d",&c1,&c2);
    a=n/a1;a1=n%a1==0?a:a+1;a=a1*a2;//第一和第二表达式求至少需要买的铅笔包数,第三给表达式表示总共需要的价格
    b=n/b1;b1=n%b1==0?b:b+1;b=b1*b2;//同上
    c=n/c1;c1=n%c1==0?c:c+1;c=c1*c2;//同上
    if(a<b&&a<c)z=a;//取最省钱的方案,赋值给z
    if(b<a&&b<c)z=b;
    if(c<b&&c<a)z=c;
    printf("%d\n",z);
    return 0;
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨落心中一点寒~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值