在CSDN高校俱乐部看到的一道题,题目不难,但是考察基础,这里我做了一些优化,有何不对大家指教。
题目信息:依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。
如下代码只遍历了能被5或3整除的数,当然也包括同时被5和3整除的数。
//依序遍历0到100闭区间内所有的正整数,
// 如果该数字能被3整除,则输出该数字及‘*’标记;
// 如果该数字能被5整除,则输出该数字及‘#’标记;
// 如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。
#include<iostream>
#include<stdio.h>
using namespace std;
//number是否能同时被5和3整除
bool isThreeAndFive(int number){
if(number%3 ==0 && number%5 == 0){
cout<<number<<"*# ";
return true;
}
return false;
}
int main(){
int num3, num5;
num3 = 3; num5 = 5;
int i3 = 3;
int i5 = 5;
while(num3 < 100 || num5 <= 100){
bool flag = num3 > num5 ? 1 : 0;
if(!flag){
if(!isThreeAndFive(num3))
cout<<num3<<"* ";
num3 += i3;
}
else{
if(!isThreeAndFive(num5))
cout<<num5<<"# ";
num5 += i5;
}
}
return 0;
}