A 数7
描述
求整数序列中位置L到位置R中一共有多少个7。对于每个数7的个数的定义为,十进制每个位置上一共有多少个7,以及能够被7整除的次数。
样例输入
- 2
- 1 10
- 47 50
源码
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int ans, l, r, t, ii;
freopen("input.txt","r",stdin);
scanf("%d", &t);
char a[100];
while (t--){
ans = 0;
scanf("%d%d", &l, &r);
for (int i = l; i <= r; i++){
memset(a, '\0', sizeof(a));
sprintf(a, "%d", i);
int len = strlen(a);
for (int j = 0; l <= len; j++){
if (a[j] == '7')
ans++;
}
ii=i;
while (ii >= 7){
if (i % 7 == 0)
ans++;
ii=i/7;
}
}
printf("%d\n", ans);
}
}