感谢楼主的无私啊
谢谢楼主分享
#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-5-18 22:42
不知这位大神和楼主的哪个好,从效率上来说
俺来学习一下
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
for(int i=0;i<=100;i++)
{
int div_3=!(i%3); // div_3为1时可以整除3
int div_5=!(i%5);
if(div_3||div_5)
{
cout<<setw(3)<<(div_3?'*':' ')<<(div_5?'#':' ') <<setw(3)<< i << endl;
}
}
return 0;
}
看看有什么玄机
凑凑热闹来看看
本帖最后由 hacker.jin 于 2014-9-20 17:43 编辑
个人认为答案应该是这样元芳你怎么看
#include <stdio.h>
void main(void)
{
int i;
for (i=1;i<=100;i++)
{
printf("%d",i);
if (i%3==0)
{
printf("*");
if (i%5==0)
{
printf("#");
}
}else if (i%5==0)
{
printf("#");
}
printf("\n");
}
}
本帖最后由 hacker.jin 于 2014-9-20 17:45 编辑
这样效率比较高点 切完全符合题目 要打印出数字和*#
看看啊!
看看看
我要好好看看~~~
看一看哈,回帖是美德!
看看是扫描题目
想看
本帖最后由 优雅的独行者 于 2014-9-26 22:56 编辑
int main(int argc, char* argv[]){
for (int i = 1; i != 101;++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);
}
}
return 0;
}
//实在弄不明白楼主为何在滥用i++,还有这个if((i%3==0||i%5==0)&&i!=0) 判断条件
//还有这个算法优化问题 这玩意儿真看不出来 也就100以内的循环 这个真没必要
//算法导论上有一句很经典:如果计算机CPU足够快 内存足够大 所有的算法的效率都是一样的
//PS:第一次用代码编辑 格式好乱
....................................
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
已经做出来,但是看看有什么陷阱!