zoukankan      html  css  js  c++  java
  • 高精速撸project A+B

    忽然发现自己好久没有打高精度了,这东西真的贼恶心。

    计时打了个A+B的交洛谷

    06:41.9还可以

    交上去还WA了一个点

    先写进来,再去接着计时debug

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #define al a[0]
    #define bl b[0]
    using namespace std;
    
    string s1,s2;
    int a[505],b[505];
    
    int main()
    {
    	cin>>s1>>s2;
    	al=s1.length();
    	for(int i=1;i<=al;i++)
    		a[i]=s1[al-i]-'0';
    	bl=s2.length();	
    	for(int i=1;i<=bl;i++)
    		b[i]=s2[bl-i]-'0';
    		
    	int k=max(al,bl);
    	for(int i=1;i<=k;i++)
    		a[i]+=b[i],a[i+1]+=a[i]/10,a[i]%=10;
    	if(a[k+1])
    		al=++k;
    	for(int i=al;i;i--)
    		putchar(a[i]+'0');
    	return 0;
    }
    

    压行选手(x 今天也很努力呢


    debug完成!

    总用时08:26.4

    错的点是没有考虑到不进位时a的位数的更新

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #define al a[0]
    #define bl b[0]
    using namespace std;
    
    string s1,s2;
    int a[505],b[505];
    
    int main()
    {
    	cin>>s1>>s2;
    	al=s1.length();
    	for(int i=1;i<=al;i++)
    		a[i]=s1[al-i]-'0';
    	bl=s2.length();	
    	for(int i=1;i<=bl;i++)
    		b[i]=s2[bl-i]-'0';
    		
    	int k=max(al,bl);
    	for(int i=1;i<=k;i++)
    		a[i]+=b[i],a[i+1]+=a[i]/10,a[i]%=10;
    	al=k;
    	if(a[al+1])
    		al++;
    	for(int i=al;i;i--)
    		putchar(a[i]+'0');
    	return 0;
    }
    
  • 相关阅读:
    移动端开发-禁止横屏
    奇葩的对象创建方式(更新中)
    每日积累之8.8
    每日积累 8.6
    折半查找
    linux中的amount的解释
    Redis集群错误
    每日积累 8.6
    Redis中在程序中的应用
    每日积累 8.4
  • 原文地址:https://www.cnblogs.com/syhien/p/7784641.html
Copyright © 2011-2022 走看看