第 1 题
Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。
我的答案:
#include<iostream>using namespace std;intmain(){ cout << "Talk is cheap. Show me the code." << endl; return 0;}
第 2 题
“告诉大家一个神奇的消息,太神奇了:明年全世界所有的人都同岁,全部都等于2022。明年的日子很特别,大概每1000年才会有一次。明年你的周岁年龄+你的出生年,每个人都是2022年。例如:你明年57加上1965年生的,加起来就是2022年。特别奇怪,连中外专家都无法解释!你计算一下,看看是不是2022。真是千年等一回呀!真准!转朋友圈,让大伙都算一下吧!”据说这个“电子包浆”贴每年都会出现。本题就请你根据发贴人提到的周岁年龄和出生年,判断其发贴的时候是哪一年。
输入在第一行中给出两个正整数,即周岁年龄和出生年,其中年龄在 (0, 200) 区间内,出生年在(1900, 2022) 区间内。在一行中输出发贴年份。
我的答案:
#include<iostream>using namespace std;intmain(){ int age, born, year; cin >> age >> born; year = age + born - 1; cout << year << endl; return 0;}
第 3 题
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)× 1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
输入第一行给出正整数 N(≤ 10),为前来查询的用户数。随后 N 行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
我的答案:
#include<iostream>#include<iomanip>using namespace std;intmain(){ int N; double height; char sex; cin>>N; for(int i=1;i<=N;i++) { cin>>sex>>height; if(sex=='F') cout<<fixed<<setprecision(2)<< height*1.09<<endl; else cout<<fixed<<setprecision(2)<< height/1.09<<endl; } return 0;}
第 4 题
据说一个人的标准体重应该是其身高(单位:厘米)减去 100、再乘以 0.9 所得到的公斤数。真实体重与标准体重误差在 10% 以内都是完美身材(即 | 真实体重 - 标准体重 | < 标准体重 × 10%)。已知市斤的数值是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。
输入第一行给出一个正整数 N(≤ 20)。随后 N 行,每行给出两个整数,分别是一个人的身高 H (120 < H < 200;单位:厘米)和真实体重 W(50 < W ≤ 300;单位:市斤),其间以空格分隔。为每个人输出一行结论:如果是完美身材,输出 `You are wan mei!`;如果太胖了,输出 `You are tai pang le!`;否则输出 `You are tai shou le!`。
我的答案:
#include<iostream>#include<cmath>// 引用数学库,使用 abs 函数using namespace std;intmain(){ int N, height, trueWeight; cin >> N; for(int i = 1; i <= N; i++) { cin >> height >> trueWeight; // 1. 计算标准体重(市斤):公式(身高-100)*0.9得到公斤,再乘2得到市斤 double standardWeight = (height - 100) * 0.9 * 2; // 2. 判断是否完美:|真实 - 标准| < 标准 * 10% if(abs(trueWeight - standardWeight) < standardWeight * 0.1) cout << "You are wan mei!" << endl; else { // 3. 不完美时判断胖瘦:真实 > 标准 即为胖 if(trueWeight > standardWeight) cout << "You are tai pang le!" << endl; else cout << "You are tai shou le!" << endl; } } return 0;}
第 5 题
一条哈密瓜自动打包流水线的工作程序是这样的:首先系统设定每箱哈密瓜应该有的总重量 W;然后传送带将一只只哈密瓜输送到一个自动称重设备上,根据称重结果进行以下操作:如果称上的总重量正好达到 W,则将称上的所有哈密瓜装箱送走;如果称上的总重量还不到 W,则将这只哈密瓜留在称上;如果称上的总重量超过了 W,则将这只哈密瓜放回传送带。本题就请你写个程序统计一下,究竟有多少只哈密瓜被装了多少箱?输入第一行给出两个正整数 N(≤ 1000)和 W(≤ 10000),分别为传送带上哈密瓜的数量和每箱的规定重量(克)。随后一行给出 N 个正整数,是传送带上每只哈密瓜的重量,单果重量不超过 2000 克。假设传送带按照输入的顺序传送哈密瓜到称重设备。在一行中输出成功装箱的箱子数量和被装箱的哈密瓜的数量。数字间以 1 个空格分隔,行首尾不得有多余空格。
我的答案:
#include<iostream>using namespace std;intmain(){ int N, weight, totalWeight = 0, targetWeight, boxes = 0, packedMelons = 0, currentMelons = 0; cin >> N >> targetWeight; for(int i = 1; i <= N; i++) { cin >> weight; if(totalWeight + weight < targetWeight) { totalWeight += weight; currentMelons++; } else if(totalWeight + weight == targetWeight) { totalWeight = 0; currentMelons++; packedMelons += currentMelons; // 累加这一箱的数量 boxes++; currentMelons = 0; // 重置当前计数 } else { // 超重:什么都不做,模拟“放回传送带” } } cout << boxes << " " << packedMelons << endl; return 0;}