杭电ACM2045 ,2028下面是我的代码

#include<stdio.h>#include<math.h>voidmain(){inta,b=1;__int64x;while(scanf("%d",&a)!=E... #include<stdio.h>
#include<math.h>
void main ()
{ int a,b=1;
__int64 x;
while (scanf("%d",&a)!=EOF)
{if(a==1)
x=3;
else
if(a==2||a==3)
x=6;
if(a>3)
x=(__int64)pow(2,a-3)*9;
printf("%I64u\n", x);
}
}
#include<stdio.h>

int gongyueshu(int a,int b)
{
int temp;
if(a<b)
{
temp=a;
a=b;
b=temp;
}

while(a%b)
{
temp=b;
b=a%b;
a=temp;
}
return b;

}

int gongbeishu(int a,int b)
{
return (a*b)/gongyueshu(a,b);

}
int main()
{

int i,n;
__int64 a[8000],tem,x;
while( scanf("%d",&n)!=EOF)
{

for(i=0;i<n;i++)
scanf("%I64d",&a[i]);
if(n==1)
x=a[0];
else

{ tem=a[0];
for(i=1;i<n;i++)
{
x=gongbeishu(tem,a[i]);
tem=x;}
}
printf("%I64u\n",x);}
}
刚忘了还有这个,为啥都是wrong answer .麻烦给出解释哈 能不能用C写啊,我大一,C++还没教,不是看的很懂,汗........还有GCD啥意思啊 ,麻烦给个C,给个C啊。。。。。。。。。。。。。。。。
展开
 我来答
gtzygtzy
2010-01-11 · TA获得超过101个赞
知道答主
回答量:132
采纳率:0%
帮助的人:113万
展开全部
首先,2045是通过递推来做的,不是这么简单的一个公式可以搞掂。
AC代码
#include<iostream>
using namespace std;
long long re[55][2];
void init()
{
re[1][1]=3;
re[2][1]=6;
re[3][0]=6;
re[3][1]=6;
for(int i=4;i<=50;i++)
{
re[i][0]=re[i-1][1];
re[i][1]=re[i-1][0]*2+re[i-1][1];
}
}
int main()
{
init();
int n;
while(cin>>n)
{
printf("%I64d\n",re[n][1]);
}
return 0;
}
然后2028,就是求GCD,你子函数用的是int导致越界。
附AC代码
#include<iostream>
using namespace std;
long long a,b,c;
long long gcd(long long a,long long b)
{
if(a==0) return b;
else return gcd(b%a,a);
}
int main()
{
int n;
while(cin>>n)
{
b=1;int i;
for(i=0;i<n;i++)
{
//cout<<i<<endl;
scanf("%lld",&a);
//cout<<i<<endl;
c=gcd(a,b);
b=a*b/c;
}
printf("%I64d\n",b);
}
return 0;
}

GCD就是最大公约数,虽然,我是用C++写的,不过感觉跟C语言的代码差不多,不会读不懂吧
百度网友2298deca2
2010-01-10 · 超过20用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:0
展开全部
不知道。楼主可以试试USACO。
这个比较容易,而且会告诉你错在哪。
http://ace.delos.com/usacogate
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞花残雪622f7c
2010-01-26 · 超过28用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:74.3万
展开全部
好深奥。鼓掌观望
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式