Description
输出[m,n]范围内所有"韩信点兵"数。
所谓韩信点兵数就是指"除以3余2,除以5余3,除以7余4"的整数。
Input
2个正整数m和n,
1≤m≤n≤100000。
Output
首先在一行中输出所有的韩信点兵数。如果一个都没有,该行就不存在了。
第二行输出第一行输出的整数个数。
整数之间用1个空格隔开,行首行末均无空格。
输入样例 1
1 1000
输出样例 1
53 158 263 368 473 578 683 788 893 998
total=10
cpp
#include <stdio.h>
#include <stdbool.h>
bool isHanXin(int num) {
return (num % 3 == 2 && num % 5 == 3 && num % 7 == 4);
}
int main() {
int m, n;
scanf("%d %d", &m, &n);
int count = 0;
bool isFirst = true;
for (int i = m; i <= n; i++) {
if (isHanXin(i)) {
if (!isFirst) {
printf(" ");
}
printf("%d", i);
count++;
isFirst = false;
}
}
printf("\ntotal=%d\n", count);
return 0;
}
这段代码实现了输入两个正整数m和n,然后判断[m,n]范围内的所有"韩信点兵"数,并进行中文输出。其中,isHanXin函数用于判断一个数是否满足"韩信点兵"的条件。在输出韩信点兵数时,我们使用一个布尔变量isFirst来判断当前的数字是否为第一个韩信点兵数,如果不是第一个数,则在输出前先打印一个空格。这样就避免了最后一个数字后面的多余空格。最后,输出韩信点兵数的总个数。