码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist
目录
MT1241 大数
(1)题目
输入一个数字N,编写一个程序,用该数字的所有数字重组一个最大数字。不考虑负数,0等特殊情况。注意:给定的数字可能非常大,因此输入被视为字符串。
格式
输入格式: 输入字符串 输出格式: 输出字符串
样例1
输入: 38293367 输出: 98763332
(2)参考代码
#include<stdio.h> #include<string.h> int main() { char a[100]; scanf("%s", a); for (int i=9;i>=0;i--) { for (int j=0;j<strlen(a);j++) { if (a[j] == i + '0') { printf("%c", a[j]); } } } return 0; }
MT1242 三个非负整数
(1)题目
给定一个正整数N,将其分解为3个非负整数的累加和,并统计出这样做的方法数。比如2,有2种分解方法:
0 + 0 + 2 = 2 (0 + 2 + 0 = 2 2 + 0 + 0 = 2 可以和左边等式看做同一种)
0 + 1 + 1 = 2 (1 + 1 + 0 = 2 1 + 0 + 1 = 2 可以和左边等式看做同一种)
格式
输入格式: 输入整型 输出格式: 输出整型
样例1
输入: 3 输出: 3
(2)参考代码
#include<stdio.h> int main() { int N, count = 0; scanf("%d", &N); for (int i=0;i<=N;i++) { for (int j=i;j<=N;j++) { if (N - i - j >= j) { count++; } } } printf("%d", count); return 0; }
MT1243 四个正整数
(1)题目
输入一个正整数N,计算将N表示为四个正整数之和(比如5= 1+1+1+2)的可能方法的数量。
格式
输入格式: 输入整型 输出格式: 输出整型
样例1
输入格式: 41 输出格式: 511
(2)参考代码
#include<stdio.h> int main() { int N, count = 0; scanf("%d", &N); for (int i=1;i<=N;i++) { for (int j=i;j<=N;j++) { for (int k=j;k<=N;k++) { if (N - i - j - k >= k) { count++; } } } } printf("%d", count); return 0; }
MT1244 减到0
(1)题目
输入两个正整数A和B,重复从较大整数中减去较小整数直到其中一个变为0,输出所需的步骤数。比如5和13。(5,13)->(5,8)->(5,3)->(2,3)->(2,1)->(1,1)->(1,0)一共需要减6次。不考虑不合理的输入等特殊情况。
格式
输入格式: 输入整型,空格分隔。 输出格式: 输出整型
样例1
输入: 5 15 输出: 3
(2)参考代码
#include<stdio.h> int main() { int a, b, count = 0; scanf("%d %d", &a, &b); while (a != 0 && b != 0) { if (a >= b) { a = a - b; } else { b = b - a; } count++; } printf("%d", count); return 0; }
MT1245 五年花光
(1)题目
银行利息月息为0.553%。某人五年中每年年底都取出1000元,到第五年时刚好取完。求存入的钱应是多少?
格式
输入格式: 无 输出格式: 输出实型,保留2位小数。
样例1
输入格式: 无 输出格式: 4140.47
(2)参考代码
#include<stdio.h> int main() { double n = 0, rate = 12 * 0.00553; for (int i=0;i<5;i++) { n = (n + 1000) / (1 + rate); } printf("%.2lf", n); return 0; }
MT1246 存入的钱
(1)题目
假设银行利息月息为0.63%。某人将一笔钱存入银行,打算在今后五年中每年年底都取出1000元,到第五年时刚好取完。求存入的钱应是多少?
格式
输入格式: 无 输出格式: 输出实型,保留2位小数。
样例1
输入格式: 无 输出格式: 4039.44
(2)参考代码
#include<stdio.h> int main() { double n = 0; for (int i=1;i<=5;i++) { n += 1000; n = n / (1 + 12 * 0.0063); } printf("%.2lf", n); return 0; }