zoukankan      html  css  js  c++  java
  • 题目1471: A+B without carry

    题目描述

    Xiao Ming always tends to ignore the carry when he does decimal addition with paper and pencil.For example,15+17,Xiao Ming will answer 22,because he ignores the carry from the single digits.5+7=12,and the digit 1 is the carry. 

     

     
    输入

    The input will consist of a series of pairs of integers a and b(both less than 1000000000),separated by a space, one pair of integers per line.

     
    输出

    For each pair of input integers a and b you should output the correct answer of the sum of a and b,a space character and Xiao Ming's answer of the sum of a and b in one line,and with one line of output for each line in input.If Xiao Ming's answer begins with zero,don't output unnecessary zero.

     
    样例输入
    15 16
    1 999
    31 71
     
    样例输出
    31 21
    1000 990
    102 2
     
    提示 [+]

    *** 提示已隐藏,点击上方 [+] 可显示 ***

     
    来源
     

    /*********************************
    *   日期:2013-3-25
    *   作者:SJF0115
    *   题号: 题目1471: A+B without carry
    *   来源:http://acmclub.com/problem.php?id=1471
    *   结果:AC
    *   来源:2013年浙江大学复试机试模拟题
    *   总结:
    **********************************/
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main()
    {
    	int a,b,len1,len2,index,i,j;
    	char str1[11],str2[11],c[11];
    	//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
    	while(scanf("%s %s",str1,str2)!=EOF){
    		len1 = strlen(str1);
    		len2 = strlen(str2);
    		index = 0;
    		//小明的计算过程
    		for(i = len1-1,j = len2-1;i >= 0 && j >= 0;i--,j--){
    			int sum = str1[i] - '0' + str2[j] - '0';
    			//忽略进位
    			if(sum > 9){
    				sum -= 10;
    			}
    			c[index++] = sum + '0';
    		}
    		while(i >= 0){
    			c[index++] = str1[i];
    			i--;
    		}
    		while(j >= 0){
    			c[index++] = str2[j];
    			j--;
    		}
    		//去掉前导0
    		index = index -1;
    		while(c[index] == '0' && index > 0){
    			index--;
    		}
    		//正确答案
    		printf("%d ",atoi(str1) + atoi(str2));
    		//小明的答案
    		for(i = index;i >= 0;i--){
    			printf("%c",c[i]);
    		}
    		printf("\n");
    
    
    	}
    	return 0;
    }
    



    /*********************************
    *   日期:2013-3-25
    *   作者:SJF0115
    *   题号: 题目1471: A+B without carry
    *   来源:http://acmclub.com/problem.php?id=1471
    *   结果:AC
    *   来源:2013年浙江大学复试机试模拟题
    *   总结:
    **********************************/
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    int main()
    {
    	int a,b,index;
    	int c[12];
    	//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
    	while(scanf("%d %d",&a,&b)!=EOF){
    		//正确答案
    		printf("%d ",a + b);
    		//求小名的答案
    		if(a == 0 && b == 0){
    			printf("%d",a + b);
    		}
    		index = 0;
    		while(a || b){
    			int sum = a % 10 + b % 10;
    			if(sum > 9){
    				sum -= 10;
    			}
    			c[index++] = sum;
    			a /= 10;
    			b /= 10;
    		}
    		//去掉前导0
    		index = index - 1;
    		while(c[index] == 0 && index > 0){
    			index--;
    		}
    		//输出答案
    		for(int i = index;i >= 0;i--){
    			printf("%d",c[i]);
    		}
    		printf("\n");
    	}
    	return 0;
    }


    第二种方法时忘记了a = 0 b = 0的情况wrong了好几次.........




    这种方法很有意思,自己没有想到.........

    #include <stdio.h>
    int a,b;
    void run()
    {
            int c,k;
            c=a+b;
            printf("%d ",c);//这个程序是由正常的和来反求不进位的和(或者直接按位相加也是可以的 )。 
            k=1;
            while(k<=a||k<=b)
            {
                    if(a/k%10+b/k%10>9)
                            c-=k*10;//在某一位上的进位被忽略,相当于总和减小了这一位权值的十倍,个位进位被忽略,总和就少了10。 
                    k*=10;
            }
            printf("%d\n",c);
    }
    int main()
    {
            while(scanf("%d%d",&a,&b)!=EOF)
                    run();
            return 0;
    } 


  • 相关阅读:
    js 跳转链接
    reg.test is not a function 报错
    html中button自动提交表单?
    mysql主从复制及双主复制
    nginx反向代理后端web服务器记录客户端ip地址
    mysql多实例-主从复制安装
    LVS+Keepalived高可用负载均衡集群架构实验-01
    debug调试
    常用网站总结
    项目部署
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2980517.html
Copyright © 2011-2022 走看看