原题链接

题目大意:大数,20进制的加法计算。

解法:convert函数把字符串转换成数组,add函数把两个大数相加。

参考代码:

#include<stdio.h>
#include<string.h> char* Digit="0123456789abcdefghij";
void convert(char*,int*);
void add(int*,int*,int*);
void print(int*);
int main(){
char str1[101],str2[101];
while(scanf("%s",str1)!=EOF&&scanf("%s",str2)!=EOF){
int num1[101]={0},num2[101]={0},num3[102]={0};
convert(str1,num1);
convert(str2,num2);
add(num1,num2,num3);
print(num3);
} return 0;
} void convert(char* str, int* num){
int j,k;
k=0;
for(j=strlen(str)-1;j>=0;j--){
if(str[j]<='9'&&str[j]>='0')
num[k]=str[j]-'0';
if(str[j]<='j'&&str[j]>='a')
num[k]=str[j]-'W';
k++;
}
}
void add(int* num1, int* num2, int* num3){
int i,j=101,add=0,c=0;
for(i=0;i<101;i++){
add=num1[i]+num2[i]+c;
c=add/20;
num3[j]=add%20;
j--;
}
if(c==1)
num3[j]=1;
}
void print(int* num){
int i,j=0;
while(num[j]==0)j++;
if(j>101){
printf("0\n");
}
else{
for(;j<102;j++){
printf("%c",Digit[num[j]]);
}
printf("\n");
}
}

最新文章

  1. 手工配置rsyslog配置文件详解
  2. 在github上搭建hexo博客
  3. mongoDB数据库和Spring MVC的整合
  4. LA 3905 Meteor
  5. 如何修复在Microsoft Azure中“虚拟机防火墙打开,关闭RDP的连接端口”问题
  6. Struts2安装与简单部署实例
  7. HDU2138 随机素数测试 Miller-Rabin算法
  8. There is no getter for property named xxx&#39; in &#39;class java.lang.xxx&#39;
  9. ajax+php(环境搭建+测试)
  10. Swift 结构体的使用
  11. Graph Without Long Directed Paths CodeForces - 1144F (dfs染色)
  12. C#水晶报表教程
  13. FZU 2254 英语考试 (最小生成树)
  14. 【洛谷】1600:天天爱跑步【LCA】【开桶】【容斥】【推式子】
  15. Liferay-Activiti 企业特性功能介绍 (新版Liferay7)
  16. mysql数据库性能测试报告
  17. centos7.5 安装 redis-4.0.11
  18. top,job,user,file,alias
  19. java内存结构JVM——java内存模型JMM——java对象模型JOM
  20. Java打包可执行jar包 包含外部文件

热门文章

  1. 牛场围栏(vijos 1054)
  2. mac 安装memcached服务
  3. display:flex
  4. Java并发编程(一) 两种实现多线程的方法(Thread,Runnable)
  5. iOS9/iOS8界面对比 XCode7
  6. virtualbox安装提示出现严重错误解决办法
  7. 《用C++语言编写一个程序,求PI的值》
  8. Oracle数据库DECODE函数的使用.
  9. hibernate实现增删改查的各种方法
  10. Chapter 2: A Simple Servlet Container