#include <stdio.h>
#include <curses.h>
#define MAX 100
#define MLEN 19
int old[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
char new[20]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j'};
int main()
{
char put[MAX];
char ch;
int i,j,count=0,count1=0;
int pnew1[MAX],pnew2[MAX];
char result[MAX+1];
int flag=0,sum=0;
printf("please input frist number:");
scanf("%s",&put);
for(i=0;i<MAX;i++)
{
if(put[i]=='\0')
break;
for(j=0;j<=MLEN;j++)
{
if(put[i]==new[j])
{
pnew1[i]=old[j];
break;
}
}
count++;
}
printf("please input second number:");
scanf("%s",&put);
for(i=0;i<MAX;i++)
{
if(put[i]=='\0')
break;
for(j=0;j<=MLEN;j++)
{
if(put[i]==new[j])
{
pnew2[i]=old[j];
break;
}
}
count1++;
}
if(count!= count1)
return 0;
for(i=count-1;i>=0;i--)
{
sum=pnew1[i]+pnew2[i]+flag;
result[i+1]=new[sum%(MLEN+1)];
flag=sum/(MLEN+1);
printf("result:%c\n",result[i+1]);
}
result[0]=new[flag];
for(i=0;i<count+1;i++)
printf("%c",result[i]);
printf("\n");
}
----------------解决方案--------------------------------------------------------
以前做过这个题,只要用数组读入后以二十进制相加就可以了,其实就是改一下高精度加法中的进位和转换
----------------解决方案--------------------------------------------------------
以前做过这个题,只要用数组读入后以二十进制相加就可以了,其实就是改一下高精度加法中的进位和转换
我看过了你写的那个了,也过不了ACM
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <curses.h>
#define MAX 100
#define MLEN 19
int old[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
char new[20]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j'};
int main()
{
char put[MAX];
char ch;
int i,j,count=0,count1=0;
int pnew1[MAX],pnew2[MAX];
char result[MAX+1];
int flag=0,sum=0;
printf("please input frist number:");
scanf("%s",&put);
for(i=0;i<MAX;i++)
{
if(put[i]=='\0')
break;
for(j=0;j<=MLEN;j++)
{
if(put[i]==new[j])
{
pnew1[i]=old[j];
break;
}
}
count++;
}
printf("please input second number:");
scanf("%s",&put);
for(i=0;i<MAX;i++)
{
if(put[i]=='\0')
break;
for(j=0;j<=MLEN;j++)
{
if(put[i]==new[j])
{
pnew2[i]=old[j];
break;
}
}
count1++;
}
if(count!= count1)
return 0;
for(i=count-1;i>=0;i--)
{
sum=pnew1[i]+pnew2[i]+flag;
result[i+1]=new[sum%(MLEN+1)];
flag=sum/(MLEN+1);
printf("result:%c\n",result[i+1]);
}
result[0]=new[flag];
for(i=0;i<count+1;i++)
printf("%c",result[i]);
printf("\n");
}
过不了.....
如果你们要测试,到这里http://acm.zju.edu.cn/submit.php?pid=1205
----------------解决方案--------------------------------------------------------
是不是那个进行测试的有问题?
----------------解决方案--------------------------------------------------------
我没有看你们写的,
我想起一种方法,不知道可不可以实现:
数字电路,要设计一个16进制的电路,
书上是将16进制转换为10进制实现的。
所以,这个是不是也考虑将20进制转化成10进制?
我还找不出他们之间的联系,望高手考虑其可行性。
----------------解决方案--------------------------------------------------------
我没有看你们写的,
我想起一种方法,不知道可不可以实现:
数字电路,要设计一个16进制的电路,
书上是将16进制转换为10进制实现的。
所以,这个是不是也考虑将20进制转化成10进制?
我还找不出他们之间的联系,望高手考虑其可行性。
我认为没有必要,因为同进制之间完全可以做四则运算,完全不需要转换后再计算
----------------解决方案--------------------------------------------------------
是不是那个进行测试的有问题?
好有嫌疑....
----------------解决方案--------------------------------------------------------
[CODE]
#include <stdio.h>
/*#include <curses.h>*/
#define MAX 100
#define MLEN 19
int old[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
char n[20]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j'};
int main()
{
char put[MAX];
char ch;
int i,j,count=0,count1=0;
int pnew1[MAX],pnew2[MAX];
char result[MAX+1];
int flag=0,sum=0;
printf("please input frist number:");
scanf("%s",&put);
for(i=0;i<MAX;i++)
{
if(put[i]=='\0')
break;
for(j=0;j<=MLEN;j++)
{
if(put[i]==n[j])
{
pnew1[i]=old[j];
break;
}
}
count++;
}
printf("please input second number:");
scanf("%s",&put);
for(i=0;i<MAX;i++)
{
if(put[i]=='\0')
break;
for(j=0;j<=MLEN;j++)
{
if(put[i]==n[j])
{
pnew2[i]=old[j];
break;
}
}
count1++;
}
if(count!= count1)
return 0;
for(i=count-1;i>=0;i--)
{
sum=pnew1[i]+pnew2[i]+flag;
result[i+1]=n[sum%(MLEN+1)];
flag=sum/(MLEN+1);
printf("result:%c\n",result[i+1]);
}
result[0]=n[flag];
for(i=1;i<count+1;i++)
printf("%c",result[i]);
printf("\n");
getch();
}
[/CODE]
----------------解决方案--------------------------------------------------------
看看是这样吗?
----------------解决方案--------------------------------------------------------