题目描述
在所有不大于 n 的正整数中,蒜头君将不是 9 的倍数的所有奇数剔除掉,将是 7 的倍数的所有偶数剔除掉,剩下的数从小到大首尾相接拼起来,组成了一个 小蒜数,请问这个数一共有多少位?
输入
输入为整数 n (1≤n≤1000)。
测试点编号 | n |
---|---|
1-3 | 1≤n≤9 |
4-10 | 1≤n≤1000 |
输出
输出为一个整数,为拼接出的小蒜数的位数。
样例输入
9
样例输出
5
解析:题目其实就是说,奇数的话只能是9的倍数能留,偶数的话只有不是7的倍数能留。
注意,他说的是最后拼接的位数,不是个数,例如100就是三位,拼接上去就是加了3位。
#include <stdio.h>
int main()
{
int n,i,cnt=0,k;
while(~scanf("%d",&n)){
for(i=1;i<=n;i++){
if(i%2==0&&i%7!=0){
k=i;
while(k>0){
cnt++;
k=k/10;
}
}else if(i%2!=0&&i%9==0){
k=i;
while(k>0){
cnt++;
k=k/10;
}
}
}
printf("%d\n",cnt);
cnt=0;
}
return 0;
}