| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3777 人关注过本帖
标题:[讨论]]第十一期编程题目(题目很简单,大家一起来做了)
取消只看楼主 加入收藏
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用我不是郭靖在2007-4-14 22:22:13的发言:

写到是可以写,但是万一被选上出题,而我有没什么时间,就不好办了.

我也想看一下高手是怎么写的.
你要有事情,我选别人就可以了


出题目真的没有什么意思,就象我们老师一样,一个人在讲台上讲的津津有味,

[此贴子已经被作者于2007-4-14 22:26:22编辑过]


2007-04-14 22:24
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
回复:(我不是郭靖)简单说一下:为了提高效率:(1...

这个地方看不大懂,你能不能说一下

NUMBER *multiply(NUMBER *opn1, NUMBER *opn2)
{

int n = opn1->length;
unsigned long *u = opn1->data;
int m = opn2->length;
unsigned long *v = opn2->data;
int mn = m + n;
unsigned long carry, temp;
int i, j;
unsigned long w[N];

memset(w, 0, sizeof(w));

for (i = 0; i < n; i++)
if (u[i] != 0)
{
for (carry = 0, j = 0; j < m; j++)/u,和v都是定义为指针这里怎么可以用做数组
{
temp = u[i]*v[j] + w[i+j] +carry;/接下来几个表达式子不明白
w[i+j] = temp % BASE;
carry = temp / BASE;
}
w[i+j] = carry;
}
for (; w[mn-1] == 0; mn--)
;
memset (opn1->data, 0, N*sizeof(unsigned long));
opn1->length = mn;
memmove(opn1->data, w, mn*sizeof(unsigned long));
return opn1;
}


2007-04-15 09:17
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
yu_huad的第一个题目对了.第二个题目要改进一下.建议不要用那个abort( );题目的测试数据都是合法的.
中间的汇编不是很懂,估计想发不错
我不是郭靖斑竹第二个是正确的

2007-04-15 11:00
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

大家参考一下
第一个题目
#include <stdio.h>
int main()
{
unsigned long x,y,m,n,l;
while (scanf ("%ld %ld %ld %ld %ld",&x,&y,&m,&n,&l)!=EOF)
{
if (m>n)
{
m=m-n;
x=(y-x+l)%l;
}
else
{
m=n-m;
x=(x-y+l)%l;
}
n=x/m;
x=x%m;
y=x;
while (1)
{
if (y==0)
{
printf ("%d\n",n);
break;
}
n+=(y+l)/m;
y=(y+l)%m;
if (y==x)
{
printf ("Impossible\n");
break;
}
}
}
return 0;
}


2007-04-15 21:16
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

第二个
#include<stdio.h>
void main()
{
char s[7];
int i,j,n,m,k,flag;
long int a[100]={0};
char st[395]={'0'};
a[0]=1;
while(scanf("%s %d",s,&n)!=EOF)
{

for(i=0;i<100;i++)
a[i]=0;
for(i=0;i<396;i++)
st[i]='\0';
st[0]='0';
a[0]=1;
m=0;
j=1;
flag=-1;
for(i=0;s[i];i++);
k=i-1;
for(i--;i>=0;i--)
{
if(s[i]=='.')
{
flag=(k-i)*n;
continue;
}
else
{
m+=(s[i]-'0')*j;
j*=10;
}
}
while(n--)
{
for(i=0;i<100;i++)
a[i]*=m;
for(i=0;i<100;i++)
{
a[i+1]=a[i+1]+(a[i]/10000);
a[i]=a[i]%10000;
}
}
for(i=0,k=0;i<99;i++,k+=4)
{
st[k+3]=a[i]/1000+'0';
a[i]%=1000;
st[k+2]=a[i]/100+'0';
a[i]%=100;
st[k+1]=a[i]/10+'0';
a[i]%=10;
st[k]=a[i]+'0';
}
for(i=395;i>=flag;i--)
{
if(st[i]!='0')
break;
}
for(j=0;j<flag;j++)
{
if(st[j]!='0')
break;
}
if(i<j)
printf("0\n");
else
{
for(i;i>=j;i--)
{
if(i==flag-1)
printf(".");
printf("%c",st[i]);
}
printf("\n");
}
}
}


2007-04-15 21:17
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
这一期做的最好的是yu_hua
moonwalker
也不错
斑竹们掏钱吧
下一期我想由我们其中的一位斑竹来出题.
他发的ACM题目我觉得都还不错,算法也不是很难.
所以下期由pcrazyc斑竹来出题.
大家多多支持哦

2007-04-19 12:31
快速回复:[讨论]]第十一期编程题目(题目很简单,大家一起来做了)
数据加载中...
 
   



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

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