zoukankan      html  css  js  c++  java
  • 数学题杭电1002A+B。。。交了七遍,五遍竟然是没删除测试时候的输出= =。。。。

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    int n,i,l1,l2,max,a,j,t;
    char s1[1001],s2[1001],s3[1001];
    scanf("%d",&n);
    for(i = 0;i < n;i++)
    {
    scanf("%s%s",s1,s2);

    l1 = strlen(s1);
    l2 = strlen(s2);
    if(l1>l2)
    max = l1;
    else
    max = l2;

    t=max;
    memset(s3,'\0',1001);
    memset(s3,'0',max+1);
    l1 = l1-1;
    l2 = l2-1;
    max = max;
    s3[0]='0';
    while(l1>=0 && l2>=0)
    {
    a = s1[l1--]-'0'+s2[l2--]-'0'+s3[max]-'0';//问题可以直接简化为小学的算术题,从后往前算
    s3[max--] ='0'+a%10;
    if(a>=10)
    s3[max]+=1;//大于十的时候记得向前加一,因为以上三个数永远不会大于等于20.。。。

    }
    while(l1>=0)
    {
    a = s3[max]-'0'+s1[l1--]-'0';
    s3[max--]='0'+a%10;
    if(a>=10)
    s3[max]+=1;
    }
    while(l2>=0)
    {
    a = s3[max]-'0'+s2[l2--]-'0';
    s3[max--]='0'+a%10;
    if(a>=10)
    s3[max]+=1;
    }

    printf("Case %d:\n",i+1);
    printf("%s + %s = ",s1,s2);

    if(s3[0] > '0')
    printf("%c",s3[0]);//这一步很重要,假设是1和9想加,会上升一位
    for(j = 1;j < t; j++)
    printf( "%c", s3[j]);
    printf( "%c\n", s3[j]);
    if(i<n-1)
    printf("\n");
    }
    return 0;
    }
  • 相关阅读:
    LOD
    优化
    Shader
    资源:创建 加载 存储 使用 ---- 热更新
    内存
    分辨率自适应
    基础知识 索引
    【转】七年IT经验的七个总结
    c#
    绘制原理
  • 原文地址:https://www.cnblogs.com/0803yijia/p/2357879.html
Copyright © 2011-2022 走看看