目录
7-45 连年
分数 10
全屏浏览题目
切换布局
作者 黄龙军
单位 绍兴文理学院
给你一个数年份n,把1到n的每个年份都写出来连在一起,最后得到的是几位数?例如n=10,得到的数字是12345678910,因此是11位数。
输入格式:
首先输入一个整数T(1<=T<=10),表示测试组数。
每组测试输入一个整数n(1<=n<=10000)。
输出格式:
对于每组测试,在一行上输出把1到n的每个年份都写出来连在一起,最后得到的数据的位数。
输入样例:
2
10
1
输出样例:
11
1
代码如下:
#include <stdio.h>
int count(int n)
{
int m = 0;
int x = n;
while (x)
{
m++;
x /= 10;
}
int s = 0;
int b = 1;
for (int i = 1; i < m; i++)
{
s += i * b * 9;
b *= 10;
}
s += m * (n - b + 1);
return s;
}
int main()
{
int T, n;
scanf("%d", &T);
for (int i = 0; i < T; i++)
{
scanf("%d", &n);
printf("%d\n", count(n));
}
return 0;
}
7-69 求婚
分数 10
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
国王的女儿达西娅要出嫁了,按照当地的风俗,在结婚那天公主从高台上抛下一朵鲜花,花儿落到谁身上,公主就嫁给谁。达西娅担心花儿落不到心上人克俊身上,就和克俊一起商议……。
达西娅找到父亲说:“我不愿意搭台抛花,那么多人挤在一起乱哄哄的。”国王说:“不搭台也行,你必须在结婚当天从求婚人群中选出新郎,但不许指名。”达西娅高兴地找到司仪做了安排。
结婚那天,司仪让求婚者站成一排,克俊数了一下求婚的人数,然后就站到队伍中去了。司仪让求婚者从 1 开始报数,报单数的人退场,留下的人再从 1 开始报数,报单数的人再退场,……,到最后只剩一个人时,众人惊奇地看到这个人正是克俊。
请编写程序,输入求婚的人数 n,输出克俊应该站的位置 p。
输入格式
n
输出格式
p
输入样例
105
输出样例
64
#include "stdio.h"
int main()
{
int n, i = 2;
scanf("%d", &n);
while (i <= n)
{
i *= 2;
}
printf("%d", i / 2);
return 0;
}