A. 算数一
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
有一个数x,将它的3倍减5,计算的结果再3倍后减5,这样反复经过n次,最后计算的结果为m。请问x是多少?
输入:为两个用空格分隔的整数n(1<n),m(0<m)。
输出:为一个整数,代表x。测试用例保证合法且均可以用int存储。
输入样例
4 691
输出样例
11
示例代码
#include<stdio.h>
int main()
{
int n, m;
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++)
{
m += 5;
m /= 3;
}
printf("%d", m);
return 0;
}
B. 贴邮票二
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
美国邮票的面值共有1, 10, 21, 34, 70, 100, 350, 1225, 1500九种(单位为美分)。现给定一个邮资的价格n(以美分为单位),如果规定所贴邮票面值总和必须等于n,请输出最少要贴几张邮票。为了简化程序,我们假设只有1, 10, 21, 34四种面值。
输入:为一个整数n。(0<n<1000)
输出:也是一个整数,为所贴邮票的张数。
输入样例
22
输出样例
2
示例代码
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int min = 1000;
for (int i = 0; i <= n / 1; i++)
{
for (int j = 0; j <= n / 10; j++)
{
for (int k = 0; k <= n / 21; k++)
{
for (int l = 0; l <= n / 34; l++)
{
if (i + 10 * j + 21 * k + 34 * l == n)
{
if (i + j + k + l < min)
{
min = i + j + k + l;
}
}
}
}
}
}
printf("%d", min);
return 0;
}
C. 17进制
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
请写一段程序将17进制数转换为10进制。
输入:为一个只包含小写字母的字符串(其中a代表17进制的0,b代表17进制的1,以此类推直到q代表17进制的16),字符串以’\n’结束。
输出:是一个整数,转换后的10进制数。测试用例保证合法,且转换后的整数可以用int存储。
输入样例
caa
输出样例
578
示例代码
#include<stdio.h>
int main()
{
char a;
int sum = 0;
scanf("%c", &a);
while (a != '\n')
{
sum *= 17;
sum += a - 'a';
scanf("%c", &a);
}
printf("%d\n", sum);
return 0;
}
D. 回文质数
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scsyuanbaoku | 是否specialjudge: False |
题目描述
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151是回文质数。请写一个程序来找出范围[a,b] (5≤a≤b≤100000)间的所有回文质数。
输入:只有一行,为两个整数,依次代表a,b 。
输出:每个回文质数输出一行。测试用例保证输入合法且输出至少包含一个回文质数。
输入样例
100 200
输出样例
101
131
151
181
191
示例代码
#include<stdio.h>
int sushu(int);
int main()
{
int a, b, count = 0;
scanf("%d %d", &a, &b);
for (int i = 1; i <= 9; i++)
{
if (sushu (i) && i >= a && i <= b)
{
printf("%d\n", i);
count++;
}
}
for (int a3 = 0; a3 <= 9; a3++)
{
for (int a4 = 0; a4 <= 9; a4++)
{
for (int a5 = 0; a5 <= 9; a5++)
{
if (!a3 && !a4)
{
if (sushu (a5 * 11) && a5 * 11 >= a && a5 * 11 <= b)
{
printf("%d\n", a5 * 11);
}
}
else if (!a3)
{
if (sushu(a4 * 101 + a5 * 10) && a4 * 101 + a5 * 10 >= a && a4 * 101 + a5 * 10 <= b)
{
printf("%d\n", a4 * 101 + a5 * 10);
}
}
else
{
if (sushu(a3 * 10001 + a4 * 1010 + a5 * 100) && a3 * 10001 + a4 * 1010 + a5 * 100 >= a && a3 * 10001 + a4 * 1010 + a5 * 100 <= b)
{
printf("%d\n", a3 * 10001 + a4 * 1010 + a5 * 100);
}
}
}
}
}
return 0;
}
int sushu(int n)
{
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
E. 24点三
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scsyuanbaoku | 是否specialjudge: False |
题目描述
“24点”是一种扑克牌游戏。具体玩法是一副牌中抽去大小王剩下52张,任意抽取4张牌,利用四则运算把牌面上的数算成24。每张牌能且只能用一次。如5、1、7、1,可以用(5-1)×(7-1)或(5+7)×(1+1)两种方法得到。
经计算机准确计算,一副牌(54张,其中去掉两张王牌)中,任意抽取4张可有1820种不同组合,其中有458个牌组算不出24点,如1、1、1、5。
现我们将规则修改如下:1、每次是5张牌;2、只能用加法或减法,不允许用乘法和除法;3、5张牌不要求都用,但如果要用只能用一次;4、牌面点数的范围是大于等于-30且小于等于30。
现在就请你写一段程序来判断某5张牌是否能算出24点。
输入格式
第一行为一个整数T(0<T<20),代表测试数据组数。后边是T行,每行均为5个用空格分隔的整数(每个整数都大于等于-30且小于等于30),代表牌点。
输出格式
为T行,每行对应前边的T组测试数据,如果根据规则能算出24则该行输出YES,否则输出NO。
输入样例
2
6 6 6 6 6
5 5 5 5 5
输出样例
YES
NO
示例代码
#include<stdio.h>
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int a, b, c, d, e;
int jixu = 1;
scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
for (int aa = -1; aa <= 1 && jixu; aa++)
{
for (int bb = -1; bb <= 1 && jixu; bb++)
{
for (int cc = -1; cc <= 1 && jixu; cc++)
{
for (int dd = -1; dd <= 1 && jixu; dd++)
{
for (int ee = -1; ee <= 1 && jixu; ee++)
{
if (a * aa + b * bb + c * cc + d * dd + e * ee == 24)
{
printf("YES\n");
jixu = 0;
}
}
}
}
}
}
if (jixu)
{
printf("NO\n");
}
}
return 0;
}