最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

acm c语言大数问题,acm大数问题

IT圈 admin 2浏览 0评论

acm c语言大数问题,acm大数问题

acm:大数阶乘

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述

我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?

输入

输入一个整数m(0

输出

输出m的阶乘,并在输出结束之后输入一个换行符

样例输入

[/cpp]50

样例输出

[/cpp]30414093201713378043612608166064768844377641568960512000000000000

[cpp]#include

using namespace std;

int main()

{

static int a[17500]={0,1};

int m,i,j,len=1,temp,jin;

cin>>m;

for(i=2;i<=m;i++)

{

jin=0;

for(j=1;j<=len;j++)

{

temp=a[j]*i+jin;a[j]=temp;jin=temp/10;

if(j==len&&jin!=0) len++;

}

}

for(i=len;i>=1;i--) cout<

return 0;

}[/cpp]

acm:比大小

时间限制:3000 ms  |  内存限制:65535 KB

难度:2

描述

给你两个很大的数,你能不能判断出他们两个数的大小呢?比如123456789123456789要大于-123456

输入

每组测试数据占一行,输入两个不超过1000位的10进制整数a,b 数据保证输入的a,b没有前缀的0。 如果输入0 0表示输入结束。测试数据组数不超过10组

输出

如果a>b则输出“a>b”,如果a

样例输入

[/cpp]111111111111111111111111111 88888888888888888888(\n换行) -1111111111111111111111111 22222222(\n) 0 0

样例输出

[/cpp]a>b(\n换行) a

[cpp]#include

#include

using namespace std;

void compare(string str1,string str2)

{

if(str1.size()>str2.size()) cout<b"<

else if(str1.size()str2[str2.size()-1]) cout<b"<

else if(str1[str1.size()-1]

else cout<>str1>>str2;

if(str1=="0"&&str2=="0") break;

if(str1[0]=='-'&&str2[0]!='-') cout<

else if(str1[0]!='-'&&str2[0]=='-') cout<b"<

else if(str1[0]!='-'&&str2[0]!='-') compare(str1,str2);

else compare(&str2[1],&str1[1]);

}

return 0;

}[/cpp]

acm c语言大数问题,acm大数问题

acm:大数阶乘

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述

我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?

输入

输入一个整数m(0

输出

输出m的阶乘,并在输出结束之后输入一个换行符

样例输入

[/cpp]50

样例输出

[/cpp]30414093201713378043612608166064768844377641568960512000000000000

[cpp]#include

using namespace std;

int main()

{

static int a[17500]={0,1};

int m,i,j,len=1,temp,jin;

cin>>m;

for(i=2;i<=m;i++)

{

jin=0;

for(j=1;j<=len;j++)

{

temp=a[j]*i+jin;a[j]=temp;jin=temp/10;

if(j==len&&jin!=0) len++;

}

}

for(i=len;i>=1;i--) cout<

return 0;

}[/cpp]

acm:比大小

时间限制:3000 ms  |  内存限制:65535 KB

难度:2

描述

给你两个很大的数,你能不能判断出他们两个数的大小呢?比如123456789123456789要大于-123456

输入

每组测试数据占一行,输入两个不超过1000位的10进制整数a,b 数据保证输入的a,b没有前缀的0。 如果输入0 0表示输入结束。测试数据组数不超过10组

输出

如果a>b则输出“a>b”,如果a

样例输入

[/cpp]111111111111111111111111111 88888888888888888888(\n换行) -1111111111111111111111111 22222222(\n) 0 0

样例输出

[/cpp]a>b(\n换行) a

[cpp]#include

#include

using namespace std;

void compare(string str1,string str2)

{

if(str1.size()>str2.size()) cout<b"<

else if(str1.size()str2[str2.size()-1]) cout<b"<

else if(str1[str1.size()-1]

else cout<>str1>>str2;

if(str1=="0"&&str2=="0") break;

if(str1[0]=='-'&&str2[0]!='-') cout<

else if(str1[0]!='-'&&str2[0]=='-') cout<b"<

else if(str1[0]!='-'&&str2[0]!='-') compare(str1,str2);

else compare(&str2[1],&str1[1]);

}

return 0;

}[/cpp]

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论