#include <stdio.h>
main()
{
int i;
for(i=0;i<=100;i++)
{if(i%3==0&&i%5==0)
printf("*#%d\n",i)
else if(i%3==0)
printf("*%d\n",i)
else if(i%5==0)
printf("#%d\n",i)
}
}
看看
看看
13546
有个思路,可以从2开始乘以3只要不大于100的就输出,依次类推
看看
初看以为有什么玄机,看结果没感觉应该85%的人都会采用这种思路吧。%应该是用除法吧,除法是最费时间的,还要判断i%3, i%5。和楼上思路类似,改用加法,不过要遍历三次。我感觉即使这样应该也会稍快点。
两个一维数组:char three={'\0'}; char five={'\0'};
第一遍: for (int i=0; i<=100; i+=3)
three = '*';
第二遍: for (i=0; i<=100;i+=5)
five = '#';
第三遍: for (i=0; i<=100; i++)
printf("%c%c%d ", three, five, i);
#include <stdio.h>
int main(void) {
int i;
for( i=0+1;i<=100;++i ) {
int div_3 = !(i%3);
int div_5 = !(i%5);
if( div_3 || div_5 )
printf("%s%s%d ",
div_3?"*":"",
div_5?"#":"",
i
);
}
printf("\n");
}
这段代码比楼主的代码要效率高不少啊, 关键在于加粗的那两句
埒肝肝有地
学习
{:1_1:}{:1_1:}{:1_1:}
看看吧
有没有答案:cry
谢谢楼主
{:1_1:}
感谢楼主~~
:funk:
#include <iostream>
int main()
{
int num;
//标记被5整除的数
for(int i=0; i<101; i+=5)
{
num = 5;
}
//标记被3整出或同时被3和5整除的数
for(int i=0; i<101; i+=3)
{
if(num == 5)
num = 8;
else
num = 3;
}
//输出
for(int i=0; i<101;i++)
{
switch(num)
{
case 3: std::cout << i << ": * \n";break;
case 5: std::cout << i << ": # \n";break;
case 8: std::cout << i << ": *# \n";break;
}
}
system("pause");
return 0;
}
我是初学者
看看,学习下