小于正整数n的所有与7相关的整数的和
输入:正整数你,(0
例子:
输入:n=100
输出:1188
//#include//using namespace std; //int main() //{ // int yy = 19; // int yyy = yy % 10; // int yyyy = yy / 10; // std::cout << "yyyy = " << yyyy << std::endl; // // std::cout << "yyy = " << yyy << std::endl; // int n; // cin >> n; // int sum = 0; // for (int i = 1; i <= n; i++) { // bool s = false; // int a = i; // while (a) { // if (a % 10 == 7) // { // int y = a % 10; // std::cout << " y = " << y << std::endl; // s = true; // std::cout <<" a= "<< a << std::endl; // } // a = a / 10; // } // std::cout << " chulail: " << a << std::endl; // // if (s == false && i % 7 != 0) { // sum += i * i; // } // } // cout << sum; // return 0; //} #include #include #include using namespace std; int panduanshifouyu7youguan(int n); int main() { int n = 0; int maxvalue = 0; cin >> maxvalue; int sum = 0; for (size_t i = 0; i < maxvalue; i++) { n = i; //cin >> n; int res = panduanshifouyu7youguan(n); if (res > 0) { //std::cout << std::endl; //std::cout << "res = " << res << std::endl; sum += res; } } std::cout << "sum = " << sum << std::endl; } int panduanshifouyu7youguan(int n) { std::stack mystack; int yushu = -1; int yuanshuzhi = n; do { yushu = n % 10; n = n / 10; mystack.push(yushu); } while (n); //std::cout << "Popping out elements..." << std::endl; std::vector vec; while (!mystack.empty()) { //std::cout << ' ' << mystack.top(); vec.push_back(mystack.top()); mystack.pop(); } for (size_t i = 0; i < vec.size(); i++) { if (vec[i] == 7) { return yuanshuzhi; } else { continue; } } return 0; }
函数panduanshifouyu7youguan()将小于n的所有与7有关的正整数筛选出来,也可以修改为与别的数相关的。
问题1. 请思考这里的数学思想。



