klxh68
发表于 2014-10-12 00:25:52
#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)
}
}
疯子~
发表于 2014-12-1 07:25:44
看看
eddie924
发表于 2014-12-1 12:10:07
看看
神灬释
发表于 2014-12-7 00:20:19
13546
RunANT
发表于 2014-12-7 22:08:03
有个思路,可以从2开始乘以3只要不大于100的就输出,依次类推
firefox_zyw
发表于 2014-12-7 23:26:03
看看
firefox_zyw
发表于 2014-12-8 00:01:30
初看以为有什么玄机,看结果没感觉应该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);
firefox_zyw
发表于 2014-12-8 00:10:40
#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");
}
这段代码比楼主的代码要效率高不少啊, 关键在于加粗的那两句
唐伯
发表于 2014-12-8 11:44:25
埒肝肝有地
tlwangxd
发表于 2014-12-8 14:30:28
学习
hezhe711
发表于 2014-12-8 23:08:40
{:1_1:}{:1_1:}{:1_1:}
黎明曙光
发表于 2014-12-9 13:04:56
看看吧
ghc00259
发表于 2014-12-9 17:19:17
有没有答案:cry
minyuanxiani
发表于 2014-12-9 19:36:28
谢谢楼主
Xin950320
发表于 2014-12-9 21:57:48
{:1_1:}
金属青苹果
发表于 2014-12-10 10:32:42
感谢楼主~~
woainigui8888
发表于 2014-12-10 12:35:56
:funk:
z294354069
发表于 2014-12-16 15:11:34
#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;
}
刘业城
发表于 2014-12-16 17:07:44
我是初学者
vbirds
发表于 2015-1-8 09:06:13
看看,学习下