华为机试HJ55:挑7
Posted 翟天保Steven
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试HJ55:挑7相关的知识,希望对你有一定的参考价值。
作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理)
输入描述:
一个正整数N。(N不大于30000)
输出描述:
不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.
示例:
输入:
20 10
输出:
3 1
解题思路:
本题比较直接,直接统计能被7整除的数字还有包含7的数字,其中包含7的数字统计,可以通过将数字转化为字符串的形式分析,也可以将数字按位次查找,即先分析余数再进行除法。
测试代码:
#include <iostream>
#include <string>
using namespace std;
int statistics(int num)
{
int result=0;
for(int i=7;i<=num;++i)
{
int temp=i;
if(i%7==0)
result++;
else{
while(temp!=0)
{
if(temp%10==7)
{
result++;
break;
}
temp/=10;
}
}
}
return result;
}
int main()
{
int number;
while(cin>>number)
{
cout<<statistics(number)<<endl;
}
return 0;
}
以上是关于华为机试HJ55:挑7的主要内容,如果未能解决你的问题,请参考以下文章