这个六位数要连续除三个数,结果一定是整数吗?如果不是的话,输出 %d 是否有问题?
还记得公式吗:
六位数 = 三位数 * 1000 + 三位数
如果提取一下公因式就变成了:
六位数 = 三位数 * (1000 + 1)
进而:
六位数 = 三位数 * 1001
而:
7 * 11 * 13 = 1001
所以最后的结果就是三位数本身!
已知矩形的大小为 n × m,现用 a × a 的正方形填充该矩形。
输入三个正整数 n, m, a(n, m, a ≤ 10^9),计算至多能填入多少正方形?(正方形可以正好碰到矩形边界,但不能超出矩形外)
输入一行三个用一个空格隔开的正整数 n, m, a。
输出输出能填入正方形的数量。
样例输入3 4 1
样例输出12
数据范围限制1 <= n, m, a ≤ 10^9
这道题我们需要画张图分析一下:
示意图
从图中不难看出,我们的摆放正方形是有策略的,就是从矩形的一角开始向其他两个方向延伸,直到放不下为止,这时正方形的个数就是最多的。
那问题来了,怎么把这个转换成代码呢?
在分析一下,能放下和放不下的判断依据是什么呢?
就是当前剩余的长度是否能够整除 a。
所以,最多的方块数就是:
(n 中 a 的个数) * (m 中 a 的个数)
到此为止,我们的解题思路就有了。
注意事项解题过程
#include <stdio.h>
int main() {
long n, m, a;
scanf("%ld %ld %ld", &n, &m, &a);
long z = (n / a) * (m / a);
printf("%ld", z);
return 0;
}
按年利率 R% 存入本钱 X,存入 P 年后的本利合计为 X * ((100 + R) / 100) ^ P,求 Y 的值。
输入输入一行三个空格隔开的实数 R, X,P
输出输出收益 Y,答案保留两位小数。
样例输入1 100 5
样例输出105.10
数据范围限制1 <= X <= 10000 1 <= P, R <= 100
这道题考察的是基本运算,按照公式求出结果即可。
注意事项#include <stdio.h>
#include <math.h>
int main() {
double r, x, p, y;
scanf("%lf %lf %lf", &r, &x, &p);
y = x * pow((100 + r) / 100, p);
printf("%.2lf", y);
return 0;
}
憨厚的老农夫昨天捡到了 3 块小石头,他想再去捡一个小石头,让这 4 个石头正好一共重 20 斤,请问他应该去捡一个多少斤的石头?
输入三个整数 a, b, c,是这三个石头的重量 (斤)
输出一个数,表示农夫应该去捡一个多少斤的石头。
样例输入3 5 7
样例输出5
这道题是一个基本的运算题。要想知道还要捡多少斤的石头,应该先知道已经捡了多少斤,然后用 20 做减法就可以了。
注意事项#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
printf("%d", 20 - (a + b + c));
return 0;
}