*上都是水题,看看就好
一、This is line x
描述
输出m行文字,文字内容是This is line x.
其中x要分别用数字1、2、...、m替换。
输入
只有一组案例。
一个正整数m,表示有m行文字。(m<=30)
输出
输出m行文字,文字内容是This is line x.
其中x要分别用数字1、2、...、m替换。
最后一行文字输出结束后也要换行。
样例输入
3
样例输出
This is line 1.
This is line 2.
This is line 3.
关键代码
*****
for (int i = 1; i <= m; i++)
{
printf("This is line %d.\n", i);
}
*****
解释
一个循环,从第一行输出到第m行,用printf格式输出就好了。
二、高斯求和
描述
高斯从小就可以在几秒内算出来1+2+...+100=5050。现在你可以写代码去算一些更大的数字,比如10+11+...+1000的结果。
现在要计算从a开始一直到b的所有整数的和,请写代码实现。
输入
多组案例。一个正整数n,表示案例的数量。(n<=100)
每组案例由两个正整数a、b组成。(1<=a<=b<=10000)
输出
针对每组案例,输出一个整数,表示从a开始一直到b的所有整数的和。
每组案例输出完要换行。
样例输入
2
1 100
10 1000
样例输出
5050
500455
关键代码
*****
int sum = 0;
for (int i = a; i <= b; i++)
{
sum += i;
}
*****
int ans = (b - a + 1) * (a + b) / 2;
*****
解释
两种方法,第一种是利用循环从a加到b,第二种是利用等差数列的性质求前n项和。
三、星号阵列-20
描述
根据行数和列数,输出星号阵列。要求在列阵的左边输出行编号,阵列的上方输出列编号。
输入
多组案例。一个正整数n,表示案例的数量。(n<=30)
每组案例由两个正整数a和b组成,表示星号阵列的行数和列数。(a<=9, b<=9)
输出
针对每组案例,输出一个星号阵列。要求在列阵的右边输出行编号,阵列的下方输出列编号。
每组案例的最后一行需要照常换行。
样例输入
2
2 3
5 4
样例输出
***1
***2
123
****1
****2
****3
****4
****5
1234
关键代码
*****
for (int i = 1; i <= a + 1; i++)
{
for (int j = 1; j <= b + 1; j++)
{
if (j == b + 1 && i <= a)
cout << i;
else if (i == a + 1 && j <= b)
cout << j;
else if (i <= a && j <= b)
cout << "*";
}
cout << endl;
}
*****
解释
与星号阵列-19有异曲同工之妙,一样是两层循环,外循环表示行,内循环表示列,如果是最后一行,就输出列,如果是最后一列就输出行,然后输出星号。
四、区域范围内数字个数
描述
有m个整数,判断其中有多少个数字在闭区间[a,b]之外。
输入
多组案例。一个正整数n,表示案例的数量。(n<=100)
每组案例先是一个正整数m和两个整数a、b,(m<=100,-10000<=a<=b<=10000)
然后是m个整数。(绝对值均不大于100000)
输出
针对每组案例,输出一个整数,表示这m个整数中不在闭区间[a,b]范围内的数字个数。
每组案例输出完要换行。
样例输入
2
3 -5 5
10 -5 1
3 -5 5
1 2 3
样例输出
1
0
关键代码
*****
sort(num, num + m);
int cnt = 0;
for (int i = 0; i < m; i++)
{
if (num[i] >= a && num[i] <= b)
cnt++;
if (num[i] > b)
break;
}
cout << m - cnt << endl;
*****
for (int i = 1; i <= m; i++)
{
int x;
cin >> x;
if (x<a || x>b)
cnt++;
}
*****
解释
这题运用了数学中补集的思想,要寻找不在范围内的数字,可以先寻找在范围内的数字然后再拿总个数减一减,为了优化时间,对输入的数字进行排序,然后再查找在此范围内的数字。或者采用边读入边判断的方式,寻找符合要求的个数。
五、孔融让梨
描述
孔融的妈准备了7个梨,有大有小,孔融挑了个最小的梨,然后给哥哥拿了个最大的梨。问剩下的梨有多重?
输入
多组案例。一个正整数n,表示案例的数量。(n<=100)
每组案例有7个正整数,表示7个梨的重量。(均不大于1000)
输出
针对每组案例,输出一个整数,表示剩下的梨的总重量。
每组案例输出完要还换行。
样例输入
2
1 2 3 4 5 6 7
5 5 5 5 5 5 5
样例输出
20
25
关键代码
*****
for (int i = 0; i < 7; i++)
{
cin >> a[i];
sum += a[i];
}
sort(a, a + 7);
cout << sum - a[0] - a[6] << endl;
*****
解释
先算出七个梨的总重量,再对七个梨进行排序,减去最小的和最大的就是答案。