题目
思路
思路其实很简单,利用字符串与模运算即可。
AC代码
#include <bits/stdc++.h>
using namespace std;
string to_String(int n) {
char m;
string res;
while (n != 0) {
int a = n / 10;
m = (n - a * 10) + '0';
res = m + res;
n = a;
}
return res;
}
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; ++i) {
string s = to_String(i);
int a = s.find('7');
if (a != -1)
cout << i << endl;
else if (i % 7 == 0)
cout << i << endl;
}
}
收获
我们学习的是算法本身,而不是语言。语言是最底层的东西,每个语言有每个语言的特性,比如这题如果用python来做的话就十分轻松,但是用C++的话要调用to_string函数。如果换另外一种语言这个题又有另一种做法了。所以我们应该了解to_string方法是怎样实现的,从而知根知底。