JG-OJ记录-21第一次线上赛:21-22(1)第1次线上赛

*1:老王又卖瓜
*2:星号阵列-17
*3:第几个星期
*4:数字和
*5:最大分差
*6:乘积最大的两个数

1:老王又卖瓜

描述
老王第一天卖n个瓜,第二天只卖第一天一半的瓜(如果不是整数,则取整,任何一天皆如此处理),第三天只卖第二天一半的瓜,…,直到某一天一个瓜都不卖了。问老王总共卖了多少瓜?
输入
一个正整数n,表示老王第一天卖的瓜。(n<=10000)
输出
一个正整数,表示老王总共卖了多少瓜。
样例输入复制样例
5
样例输出
8
提示说明
5+2+1=8

解:

考点1:整数型/整数型=整数型,所以类似细节3/2=1

考点2:循环和退出条件

for(;;)
	{
        更新n
		if(n为0) break;
		累积和
	}

2:星号阵列-17

描述
输出左下三角形区域以及右下三角形区域都由*构成的星号阵列
输入
一个正整数n,表示星号阵列由多少行组成
输出
输出左下三角形区域以及右下三角形区域都由*构成的星号阵列。最后一行阵列输出完毕后也要换行。
样例输入复制样例
6
样例输出
img

解:

考点:纯纯的细心就行,找规律

这还要看代码?
    略

3:第几个星期

描述
规定一个完整的星期是从星期一到星期日。在某一年内,把1月1日规定为该年的第1个星期(当然,第1个星期不一定完整,有可能不是从星期一开始)。例如2021年的1月1日是星期五,故从2021年1月1日至1月3日是第1个星期,1月4日到1月10日是第2个星期,…,以此类推,2021年12月27日至12月31日是该年最后一个星期。现在给定一个日期,并给定这一年的1月1日是星期几,求该日期是在这一年的第几个星期。
输入
4个正整数a、b、c、d,表示a年b月c日,a年的1月1日是星期d(保证是合法日期,1<=d<=7,d=7时表示是星期日)
输出
一个正整数,表示该日期是在这一年的第几个星期。不要换行。
样例输入复制样例
2021 1 12 5
样例输出
3

解:

考点1:闰年判断

考点2:计算天数

考点3:将数字限制在区间内

if(4整除)
	{
		if((100整除)&&(不被400整除)
		{
			No
		}
		else if(3200整除)
		{
			No
		}
		else Yes
	}
else No
           
m月d天
for(1到m-1)
     {
         计算1到m-1月天数和
     }
     加上d天
     
得到天数和sum和11月星期d
for(sum-1,d+1)
	{
        每当d超过7(非法的星期)
        if(d>7)
        {
            周数+1
            d=1(回到周一)
        }
	}

4:数字和

描述
计算0到n之间所有整数的和
输入
一个整数n(-10000<=n<=10000)
输出
一个整数,表示0到n之间所有整数的和。不要换行。
样例输入复制样例
-4
样例输出
-10

解:

考点,判断循环方向

cin>>n;
if(n<0) 循环要--
else 循环要++

5:最大分差

描述
一个班级里有n名学生,现在已知这n名学生的C++考试成绩,求其中的成绩差距最大的两个学生之间相差了多少分
输入
一个正整数n,表示班级学生的数量。(2<=n<=100)然后是n个非负整数,表示这n名学生的成绩。(分数范围在0到100之间)
输出
一个整数,表示分差最大的两个学生之间的差距。不要换行。
样例输入复制样例
540 100 80 90 65
样例输出
60
提示说明
100-40=60

解:

这边重点,很多题的技巧

要点:一开始默认的最大值要范围内的最小最小值要范围内的最大

for(n次循环)
	{
    	输入的数字t
		if(t比记录的最大值大) 替换最大值;
		if(t比记录的最小值小) 替换最小值;
	}
	

6:乘积最大的两个数

描述
找出三个整数中乘积最大的两个数
输入
三个整数a、b、c(-10000~10000之间),保证只有唯一的解。
输出
乘积最大的两个数,按小的在前大的在后的顺序,中间隔一个空格。不要换行。
样例输入复制样例
7 6 5
样例输出
6 7

解:

先给排个序

就能发现不是前两个就是后两个,记得考虑负数

来源
21-22(1)第1次线上赛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值