BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!
现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。
输入格式:
输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。
输出格式:
输出对应的十进制数。
输入样例:
18
输出样例:
1
2
#include int main()
{
int num, hex, a, b, c;
scanf("%d", &num);
if (num >&#61; 0 && num <&#61; 9)
{
hex &#61; num;
}
else
{
a &#61; num / 16;
b &#61; num - 16 * a;
hex &#61; a * 10 &#43; b;
}
printf("%d", hex);
return 0;
}
03-0. 超速判断(10)
模拟交通警察的雷达测速仪。输入汽车速度&#xff0c;如果速度超出60 mph&#xff0c;则显示“Speeding”&#xff0c;否则显示“OK”。
输入格式&#xff1a;
输入在一行中给出1个不超过500的非负整数&#xff0c;即雷达测到的车速。
输出格式&#xff1a;
在一行中输出测速仪显示结果&#xff0c;格式为&#xff1a;“Speed: V - S”&#xff0c;其中V是车速&#xff0c;S或者是Speeding、或者是OK。
输入样例1&#xff1a;
40
输出样例1&#xff1a;
Speed: 40 - OK
输入样例2&#xff1a;
75
输出样例2&#xff1a;
Speed: 75 - Speeding
03-1. 三天打鱼两天晒网(15)
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起&#xff0c;开始“三天打鱼两天晒网”&#xff0c;问这个人在以后的第N天中是“打鱼”还是“晒网”&#xff1f;
输入格式&#xff1a;
输入在一行中给出1个不超过1000的正整数N。
输出格式&#xff1a;
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”)&#xff0c;并且输出“in day N”。
输入样例1&#xff1a;
103
输出样例1&#xff1a;
Fishing in day 103
输入样例2&#xff1a;
34
输出样例2&#xff1a;
Drying in day 34
#include int main()
{
int remain, num;
scanf("%d", &num);
remain &#61; num % 5;
if (remain>0&&remain <&#61; 3)
{
printf("Fishing in day %d", num);
}
else
{
printf("Drying in day %d", num);
}
return 0;
}
03-2. 用天平找小球(10)
三个球A、B、C&#xff0c;大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。
输入格式&#xff1a;
输入在一行中给出3个正整数&#xff0c;顺序对应球A、B、C的重量。
输出格式&#xff1a;
在一行中输出唯一的那个不一样的球。
输入样例&#xff1a;
1 1 2
输出样例&#xff1a;
C
#include int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a &#61;&#61; b)
{
printf("C");
}
if (b &#61;&#61; c)
{
printf("A");
}
if (a &#61;&#61; c)
{
printf("B");
}
}