zoukankan      html  css  js  c++  java
  • ZOJ 1205 Martian Addition

    原题链接

    题目大意:大数,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
    ");
    	}
    	else{
    		for(;j<102;j++){
    			printf("%c",Digit[num[j]]);
    		}
    		printf("
    ");
    	}
    }
  • 相关阅读:
    mongodb的安装
    express初体验
    vscode自定义快捷键
    项目开发前准备——清除默认样式
    手动开启和关闭mysql
    一步添加博客园看板娘
    js实现动态球球背景
    kendo grid 使用小结
    flask 与celery
    scrapy 调用js
  • 原文地址:https://www.cnblogs.com/naive/p/3568809.html
Copyright © 2011-2022 走看看