?? 1230 火星a+b.cpp
字號:
/*
1230 火星A+B
Time Limit : 1000 ms Memory Limit : 32768 K Output Limit : 256 K
GUN C++
*/
#include <iostream>
#include <string>
using namespace std;
const int Max=25;
int prime[Max]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int toNum(char *c,int n[])
{
int i,all,temp,dig;
i=0;all=0;temp=0;dig=1;
while(c[i]!='\0')
i++;
while(i--)
if(c[i]!=',')
{
temp+=(c[i]-'0')*dig;
dig*=10;
}
else
{
n[all]=temp;
all++;
temp=0;dig=1;
}
n[all]=temp;
all++;
return all;
}
int main()
{
int n,i,temp;
char a[200],b[200];
int num1[Max],len1,num2[Max],len2,ans[Max],len;
while(cin>>a>>b && (a[0]!='0' && b[0]!='0'))
{
for(i=0;i<Max;i++)
num1[i]=num2[i]=ans[i]=0;
len1=toNum(a,num1);
len2=toNum(b,num2);
len=0;
for(i=0;i<Max;i++)
{
ans[i]+=num1[i]+num2[i];
if(ans[i]>=prime[i])
{ temp=ans[i];ans[i]%=prime[i];ans[i+1]=(temp-ans[i])/prime[i];}
if(ans[i]>0)
len=i;
}
for(i=len;i>=0;i--)
{
if(i!=len)
cout<<',';
cout<<ans[i]<<flush;
}
cout<<endl;
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -