zoukankan      html  css  js  c++  java
  • 【PAT】B1074 宇宙无敌加法器(20 分)

    打一开始做就听人说这个难,吓得我把它放到了最后做,不过如此嘛。
    这里说说样例的坑点
    1.最后结果可能高位有0;例如样例结果07201
    2.结果会进位,
    3.有可能结果是0,(此处取决于你的输出方式)

    #include<cstdio>
    #include<string.h>
    #include<iostream>
    #include<map>
    #include<algorithm>
    using namespace std;
    int main(){
    	char jinzhibiao[21]={''};
        scanf("%s",jinzhibiao);		//输入进制表
        getchar();					//接受第一行的换行符
        char num1[21]={''},num2[21]={''};
        scanf("%s",num1);
        getchar();
        scanf("%s",num2);
        reverse(jinzhibiao,jinzhibiao+strlen(jinzhibiao));
        reverse(num1,num1+strlen(num1));
        reverse(num2,num2+strlen(num2));
        int flag=0;//进位
        int final[21]={0},wei=0;
        for(int i=0;i<strlen(jinzhibiao);i++){
    		int jinzhi;//取出当前位的进制数
    		if(jinzhibiao[i]=='0') jinzhi=10;
    		else if(isdigit(jinzhibiao[i])) jinzhi=jinzhibiao[i]-'0';
    		int n1= (num1[i]=='')?0:(num1[i]-'0');
    		int n2= (num2[i]=='')?0:(num2[i]-'0');
    		int n=n1+n2+flag;//当前位的结果;
    		flag=n/jinzhi;
    		final[wei++]=n%jinzhi;
        }
    	if(flag!=0) final[wei++]=flag;
    	flag=0;
        for(int i=wei-1;i>=0;i--){
    		if(final[i]==0&&flag==0) continue;
    		if(final[i]!=0) flag=1;
    		printf("%d",final[i]);
    
        }
        if(flag==0) printf("0");
        return 0;
    }
    
  • 相关阅读:
    OSCP Learning Notes Exploit(7)
    正则表达式中?=和?:和?!的理解
    提取日志中的ip
    ip地址的正则表达式
    linux内核tmpfs/shmem浅析
    记一个linux内核内存提权问题
    linux内存屏障浅析
    linux IPv4报文处理浅析
    linux会话浅析
    linux memory lock浅析
  • 原文地址:https://www.cnblogs.com/hebust/p/9491376.html
Copyright © 2011-2022 走看看