| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 778 人关注过本帖
标题:这个题怎么做
只看楼主 加入收藏
etsunny
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-11
收藏
 问题点数:0 回复次数:10 
这个题怎么做
求一个十进制300位的质数
搜索更多相关主题的帖子: 十进制 
2007-11-07 19:06
qq95620412
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-11-5
收藏
得分:0 
普通计算机是无法提供300位十进制数的运算的。
你应该自己建造新的数据类型来做运算。

人生路难走,转眼已白头。伤心望远山,黯然下小楼。
2007-11-07 19:25
etsunny
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-11
收藏
得分:0 

是啊,我用的是数组,可是做除法的算法没有解决


圣火从希腊蔓延,带着普罗米修斯的祝愿
2007-11-08 22:40
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用etsunny在2007-11-8 22:40:59的发言:

是啊,我用的是数组,可是做除法的算法没有解决

楼主发下你现在的代码!


—>〉Sun〈<—
2007-11-08 22:58
etsunny
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-11
收藏
得分:0 

太混乱了,不知道怎么说好

#include<stdio.h>
#include<math.h>
#define N 10000
#define M N/2+1

main ()
{
int i=0,j=0,k=0,l=0,m=0,n=0;
int a[N]={0};
int b[M]={0};
int c[N]={0};
int jiayi(int b[M],int i);
int yushu(int a[N],int b[M],int n,int m);

/*输出到文件D:\iloveyou\1中*/
/*
for(l=0;l<N;l++)
{
a[l]=9;
fprintf(D:\iloveyou\1 * fp,"%d",a[N-1-l]);
} */

/*求N位的大质数,用数组表示和运算*/

for(a[N]=2;a[0]<=9;jiayi(a[N],N))
{
for(b[M]=1;b[0]<1;jiayi(b[M],M))
{
if (yushu(a[N],b[M],n,m)==0)
break;
}
if(b[0]>0)
for(l=0;l<N;l++)
{
c[l]=a[l];
}
}
for(i=0;i<N;i++)
{
printf("%d\n",c[i]);
}


}

/* i=m; 设b[0]为最高位,b[M]为个位,自增1;*/
jiayi(int b[M],int i)
{
b[i]++;
if (b[i]>9)
b[i]=0;
i--;
jiayi(b[M],i);
reaturn (b[M],i);
}

/*a[N]除以b[M],按各个位进行计算,即n位整数除以m位整数,取余*/
yushu(int a[N],int b[M],int n,int m)
{
/* int n=0,m=1; */
if (n<m)
{
if (a[n]>b[m])
{
a[n]=a[n]-b[m];
yushu(a[N],b[M],n,m);
}
else if (a[n]=b[m])
{
n++;
m++;
yushu(a[N],b[M],n,m);
}
else if (a[n]<b[m])
{
n++;
yushu(a[N],b[M],n,m);
}
}
else
{
if (a[n]>b[m])
{
a[n]=a[n]-b[m];
yushu(a[N],b[M],n,m);
}
else if (a[n]=b[m])
{
n++;
m++;
if (m<M)
yushu(a[N],b[M],n,m);
reaturn (0);
}
else if (a[n]<b[m])
{
reaturn (1);
}
}

}


圣火从希腊蔓延,带着普罗米修斯的祝愿
2007-11-08 23:30
etsunny
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-11
收藏
得分:0 

编译没有通过


圣火从希腊蔓延,带着普罗米修斯的祝愿
2007-11-08 23:31
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

//--------------------------------------------------------------//
// 把 5 楼的代码排了下 //
//----------------------//

#include <stdio.h>
#include <math.h>
#define N 10000
#define M N/2+1

int main(void)
{
int i=0,j=0,k=0,l=0,m=0,n=0;
int a[N]={0};
int b[M]={0};
int c[N]={0};
int jiayi(int b[M],int i);
int yushu(int a[N],int b[M],int n,int m);

/*输出到文件D:\iloveyou\1中*/
/*
for(l=0;l<N;l++)
{
a[l]=9;
fprintf(D:\iloveyou\1 * fp,"%d",a[N-1-l]);
}
*/

/*求N位的大质数,用数组表示和运算*/

for(a[N]=2;a[0]<=9;jiayi(a[N],N))
{
for(b[M]=1;b[0]<1;jiayi(b[M],M))
{
if(yushu(a[N],b[M],n,m)==0)
break;
}
if(b[0]>0)
for(l=0;l<N;l++)
{
c[l]=a[l];
}
}
for(i=0;i<N;i++)
{
printf("%d\n",c[i]);
}

return 0;
}

/* i=m; 设b[0]为最高位,b[M]为个位,自增1;*/
jiayi(int b[M],int i)
{
b[i]++;
if(b[i]>9)
b[i]=0;
i--;
jiayi(b[M],i);
reaturn (b[M],i); /* 这个是返回吗?,不能这样返回 */
}

/*a[N]除以b[M],按各个位进行计算,即n位整数除以m位整数,取余*/
yushu(int a[N],int b[M],int n,int m)
{
/* int n=0,m=1; */
if (n<m)
{
if(a[n]>b[m])
{
a[n]=a[n]-b[m];
yushu(a[N],b[M],n,m);
}
else if(a[n]=b[m])
{
n++;
m++;
yushu(a[N],b[M],n,m);
}
else if(a[n]<b[m])
{
n++;
yushu(a[N],b[M],n,m);
}
}
else
{
if(a[n]>b[m])
{
a[n]=a[n]-b[m];
yushu(a[N],b[M],n,m);
}
else if (a[n]=b[m])
{
n++;
m++;
if (m<M)
yushu(a[N],b[M],n,m);
reaturn (0);
}
else if (a[n]<b[m])
{
reaturn (1);
}
}
}

//---------------//
// TC 编译的吧 //
//----------------------------------------------------------------------------//

/* “红色部分的 reaturn”,关键字错了,可能是搂主发的时候..... */
/* 这样返回的话值因该是 b[M] */

[此贴子已经被作者于2007-11-8 23:50:53编辑过]


—>〉Sun〈<—
2007-11-08 23:37
etsunny
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-11
收藏
得分:0 
是的,谢谢你

圣火从希腊蔓延,带着普罗米修斯的祝愿
2007-11-08 23:51
etsunny
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-11
收藏
得分:0 

怎么返回呢,reaturn (b,i); 吗


圣火从希腊蔓延,带着普罗米修斯的祝愿
2007-11-10 17:37
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
定义个结构返回.你的代码看着难受,还是不看了.

without further ado, let’s get started
2007-11-10 23:39
快速回复:这个题怎么做
数据加载中...
 
   



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

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