11202 - 任意两个数的和
时间限制 : 1 秒
内存限制 : 128 MB
编程序,电脑任意输入两个整数,计算出他们的和。
输入
a b(a b为整数,范围是-2,147,483,648~2,147,483,647)
输出
a+b的和
样例
输入
1 1
输出
2
答案:
#include<stdio.h>
int main() {
double a, b;
scanf("%lf%lf", &a, &b);
double sum = a + b;
printf("%.lf\n", sum);
return 0;
}
分析:题目说给的是输入两个整数,然后我第一次再编程的时候也就定义俩int整数,但是发现总有一个测试点通不过,后面改为俩long型的整数还是通不过。不是说逻辑不对,只是printf只能打印32位比特位补码合法的数据。如果超过了这个范围就会截断。因此用整数输入是基本通不过,大家可以试试其他语言。这个题告诉我们,输入整数,我们并不是要一定输入整数,这种思维特别容易限制我们的思考方式。
是否通过:
11203 - 对齐输出
时间限制 : 1 秒
内存限制 : 128 MB
读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。
输入
只有一行,包含三个整数,整数之间以一个空格分开。
输出
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
样例
输入
123456789 0 -1
输出
123456789 0 -1
答案:
#include<stdio.h>
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("%8d %8d %8d\n", a, b, c);
return 0;
}
分析:这个题就是个基础题目,只是为了让大家巩固左对齐和右对齐的打印方式,%md,(其中m为正数),则将数据按m位进行打印,多余的向左边补空格。如果是负数就向右补空格。我们只需要记一个即可。
简记:一个左正登
就是正数的时候向左边补空格,达到右对齐的效果。反之则不然。
11212 - 求两位整数各个位上的数字和
时间限制 : 1 秒
内存限制 : 128 MB
输入一个正整数a(正整数a的位数为两位10≤a≤99),求a各个位上的数字之和。
例如:a的值为35,它个位上的数字是5,十位上的数字是3。
因为:5 + 3 = 8,所以输出结果为:8
输入
a
输出
a各个位上的数字之和
样例
输入
24
输出
6
答案:
#include<stdio.h>
int main() {
int ge, shi, N;
scanf("%d", &N);
ge = N % 10;
shi = N / 10 % 10;
printf("%d\n", ge + shi);
return 0;
}
分析:这个题难度一般,就一个简单的题目,但是里面的思想很重要,获得一个整数的各个位数的算法思想还是很重要的,在后面的很多题目都是有用的。
获得个位:对10取余
获得十位:除以10再对10取余
获得百位:除以100再对10取余
以此类推。。。
是否通过:
11215 - 求A*B
时间限制 : 1 秒
内存限制 : 128 MB
输入两个整数a、b,求a*b的值。
输入
a b (1<=a,b<=10^9)(1<=a,b<=109)
输出
a*b的值
样例
输入
1 2
输出
2
答案:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
long long a,b,product;//由题意知变量应定义为超长整型变量
cin>>a>>b;
product=a*b;//两数之积
cout<<product<<endl;
return 0;
}
分析:我之前用C语言写,怎么定义都通不过,怎么计算都通不过,还请各位大佬解释下原因。还是C++方便,因此学习C++更适合编程。
是否通过:
11401 - 吃苹果
时间限制 : 1 秒
内存限制 : 128 MB
八尾勇喜欢吃苹果。她现在有m(m≤100) 个苹果,吃完一个苹果需要花费t(0≤t≤100) 分钟,吃完一个后立刻开始吃下一个。现在时间过去了s(s≤10000) 分钟,请问她还有几个完整的苹果?
输入
输入三个非负整数表示 m 、t 和 s。
输出
输出一个整数表示答案。
样例
输入
50 10 200
输出
30
答案:
#include<stdio.h>
int main() {
int m, t, s;
scanf("%d%d%d", &m, &t, &s);
int k = (m * t - s) % t;
if (k == 0) {
printf("%d\n", (m * t - s) / t);
}
else {
printf("%d\n", (m * t - s) / t +1);
}
return 0;
}
分析:这个题目容易忽略(m*t-s)/t能不能整除的问题,如果能整除,答案就是该结果,但是如果不能整除,那么还得在该结果上加1。其实就是我们数学上常说的向上取整。
是否通过: