| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1092 人关注过本帖
标题:这种错误也可以??????????
只看楼主 加入收藏
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

好!再来个!OK?


对不礼貌的女生收钱......
2006-05-03 09:20
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(soft_wind)好!再来个!OK?[em17]
以下是引用soft_wind在2006-5-3 9:20:00的发言:

好!再来个!OK?

“说你胖就喘”,偶这人经不起夸。那就再弄个“素数判别”吧

#include<stdio.h>
isPrime(int n)
{
static i=2;
return n<i*i?(i=2,1):n%i?
(++i,isPrime(n)):(i=2,0);
}
main()
{
int n;
for(n=2;n<=100;n++)
if(isPrime(n))printf("%d\t",n);
}

代码稍长、效率更高
int isPrime(int n)
{
static i=2;
return n<i*i?(i=2,1):n%i?
(i+=1+(i>2),isPrime(n)):(i=2,0);
}

c++下代码更短(用及默认参数)
#include<iostream.h>
int prime(int n,int i=2)
{ return n<i*i?1:n%i?prime(n,i+1):0; }

void main()
{ for(int i=2;i<=100;i++)
if(prime(i))cout<<i<<" ";
cout<<endl;
}

如果对象是一组奇数则只要用3,5,7,...试除,于是有
#include<iostream.h>
int prime(int n,int i=3)
{ return n<i*i?1:n%i?prime(n,i+2):0; }
void main()
{ cout<<2<<" ";
for(int i=3;i<100;i+=2)
if(prime(i))cout<<i<<" ";
cout<<endl;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-03 09:39
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

#include<stdio.h>
isPrime(int n)
{
static i=2;
return n<i*i?(i=2,1):n%i?
(++i,isPrime(n)):(i=2,0);
}
能说下(i=2,1)和(i=2,0)是怎么执行的吗?它不是就取右边的数吗?
我开始有些不能理解阁下的程序了!


对不礼貌的女生收钱......
2006-05-03 10:15
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(soft_wind)#include<stdio.h> isPrime...
以下是引用soft_wind在2006-5-3 10:15:00的发言:

#include<stdio.h>
isPrime(int n)
{
static i=2;
return n<i*i?(i=2,1):n%i?
(++i,isPrime(n)):(i=2,0);
}
能说下(i=2,1)和(i=2,0)是怎么执行的吗?它不是就取右边的数吗?
我开始有些不能理解阁下的程序了!

return n<i*i?(i=2,1):n%i?(++i,isPrime(n)):(i=2,0);
用自然语言说就是:如果n小于i的平方,则首先恢复static i的初值2
接着返回1;否则的话测试i是否n的因子,若不是
则递归;否则首先恢复static i的初值2,然后宣告
不是素数。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-03 10:28
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(–★–)回复:(soft_wind)#include<std...
补充:这一切麻烦都缘自减少形参的努力。这种情况在HANOI梵塔问题和八皇后上也有表现,只是多数人不肯象在下这样去钻“牛角尖”罢了。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-03 10:34
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
啊,懂了,高,刚才我看差了!
还以为是i=(2,1),哎!

对不礼貌的女生收钱......
2006-05-03 10:51
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(soft_wind)啊,懂了,高,刚才我看差了![em...
再次说明基本功太重要。可是刚才有个帖子
[求助]简单的指针数组,交换的时候出现错误
就有很多问题。还是那句老话,要步步为营,
稳扎稳打,罗马不是一天建成的。当然兄台的
水平还是够味的,腾飞指日可待哟。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-03 11:00
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

恩,说得是.我的基础确实不好。
不过,所幸的是,现在刚大一,还有些时间,一定加强!


对不礼貌的女生收钱......
2006-05-03 11:38
快速回复:这种错误也可以??????????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019676 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved