程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 1503 大整數加分 超時了

POJ 1503 大整數加分 超時了

編輯:C++入門知識

 


有解決呀。


 

 #include<stdio.h>  
#include<string.h>  
#define bool int  
#define false 0  
#define true 1  
   
int main() 
{ 
     
    int nlen1;   //len1,len1的長度  
    int len1[200],sum[200]; 
    int i,j; 
    char a[200]; 
    int bStartOutput=false; 
    //freopen("in.txt","r",stdin);    
    memset(sum,0,sizeof(sum)); 
 
    while(scanf("%s",a)&&*a!='0') 
    { 
     
        memset(len1,0,sizeof(len1)); 
     
        nlen1=strlen(a); 
        j=0; 
        for(i=nlen1-1;i>=0;i--) 
            len1[j++]=a[i]-'0';  
 
        for(i=0;i<=nlen1;i++) 
        { 
            sum[i]=sum[i]+len1[i]; 
            if(sum[i]>=10) 
            { 
                sum[i]-=10; 
                sum[i+1]=sum[i+1]+1; 
            } 
        } 
         
    } 
         
     
 
 
 
     for(i=nlen1+1; i >= 0; i -- ) 
     { 
          if( bStartOutput) 
               printf("%d", sum[i]); //如果多余的0 已經都跳過  
          else 
               if( sum[i] ) 
               { 
                    printf("%d", sum[i]); 
                    bStartOutput = true; //碰到第一個非0 的值,就說明多余的  
               } 
     } 
     printf("\n"); 
 
     if(bStartOutput==false) 
          printf("0\n"); 
    
 
    return 0; 
 
} 

#include<stdio.h>
#include<string.h>
#define bool int
#define false 0
#define true 1
 
int main()
{
 
 int nlen1;   //len1,len1的長度
 int len1[200],sum[200];
 int i,j;
 char a[200];
 int bStartOutput=false;
 //freopen("in.txt","r",stdin); 
    memset(sum,0,sizeof(sum));

 while(scanf("%s",a)&&*a!='0')
 {
 
  memset(len1,0,sizeof(len1));
 
  nlen1=strlen(a);
  j=0;
  for(i=nlen1-1;i>=0;i--)
   len1[j++]=a[i]-'0'; 

  for(i=0;i<=nlen1;i++)
  {
   sum[i]=sum[i]+len1[i];
   if(sum[i]>=10)
   {
    sum[i]-=10;
    sum[i+1]=sum[i+1]+1;
   }
  }
  
 }
  
 

 

     for(i=nlen1+1; i >= 0; i -- )
     {
          if( bStartOutput)
               printf("%d", sum[i]); //如果多余的0 已經都跳過
          else
               if( sum[i] )
               {
                    printf("%d", sum[i]);
                    bStartOutput = true; //碰到第一個非0 的值,就說明多余的
               }
     }
  printf("\n");

     if(bStartOutput==false)
          printf("0\n");
  

 return 0;

}


 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved