菜鸟请教一个编程问题,求高手回答。用c++如何实现输出一百万(1000000)以内的整数只输出7的倍数,和数字之中
菜鸟请教一个编程问题,求高手回答。
用c++如何实现输出一百万(1000000)以内的整数只输出7的倍数,和数字之中带有7(譬如1007,1271,785200,7777251)的整数呢?跪求高手!!!
[解决办法]
- C/C++ code
bool IsContaint7(int num) { while (num > 0) { if ((num % 10) == 7) { return true; } num /= 10; } return false; } void FindNums() { for (int i = 1; i < 1000000; i++) { if (i % 7 == 0 || IsContaint7(i)) { // 输出i } } }
[解决办法]
记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!”
KISS - Keep It Simple and Stupid.
- C/C++ code
//输出一百万(1000000)以内的整数只输出7的倍数,和数字之中带有7(譬如1007,1271,785200,7777251)的整数#include <stdio.h>#include <string.h>int has7(int d) { char s[8]; sprintf(s,"%d",d); return (int)strchr(s,'7');}int main() { int i; for (i=0;i<=1000000;i++) { if (i%7==0||has7(i)) printf("%d\n",i); } return 0;}//0//7//14//17//21//27//28//35//37//42//47//49//56//57//63//67//70//71//72//73//74//75//76//77//78//79//84//87//91//97//98//105//... ...//999967//999970//999971//999972//999973//999974//999975//999976//999977//999978//999979//999985//999987//999992//999997//999999 