题目描述
输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理)
输入描述:
一个正整数N。(N不大于30000)
输出描述:
不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.
Firstly, 我写的代码形式不够强大,面对一些大数例子失效嘞!
弄斧如下:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int f(int n) 4 { 5 while(n) 6 { 7 if(n%10==7) return 1; 8 n/=7; 9 } 10 return 0; 11 } 12 int main() 13 { 14 int n,count=0; 15 cin>>n; 16 for(int i=6;i<=n;i++) 17 { 18 if(i%7==0||f(i)==1) count++; 19 } 20 cout<<count<<endl; 21 return 0; 22 }
而对以上之代码调整一些语句可以完美AC!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int cnt=0;
for(int i=6;i<=n;i++)
{
if(i%7==0) cnt++;
else {
int m=i;
while(m)
{
if(m%10==7) {
cnt++;
break;
}
m/=10;
}
}
}
cout<<cnt<<endl;
}
return 0;
}
嘻嘻,言毕于此:https://www.nowcoder.com/practice/ba241b85371c409ea01ac0aa1a8d957b?tpId=37&tqId=21278&tPage=3&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking