程序设计训练4.10-7,还是7
【问题描述】输出 7 和 7 的倍数,还有包含 7 的数字例如(17,27,37...70,71,72,73...)
【输入形式】一个正整数 N。(N 不大于 30000)
【输出形式】从小到大排列的不大于 N 的与 7 有关的正整数,每行一个。
【样例输入】
20
【样例输出】
7
14
17
【思路说明】
N 不大于 30000,可以尝试最直接明了的方式,直接从1开始遍历到 n ,如果是7的倍数或者包含7,输出即可。
【代码如下】
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
string s=to_string(i);
/*把 i 转化成字符串,便于判断 i 是否含有元素 7 ,这种方式
在版本较老的 C++ 编译器中运行不通过,但提交是可以的,当然
可以尝试用 sprintf() ,这样老版本的也可以通过。 */
if(i%7==0||s.find('7')!=s.npos)
cout<<i<<endl;
}
}