大数相加

基础练习(一)
3:32:07
5:00:00
               
A - 第几天?
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

据说东区学姐就要生日了,某acmer正在紧张准备礼物,学姐问谁能在短时间内算出所有学姐的生日是她出生那年的第几天,答对有惊喜的说。。。。

Input

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD分别表示年/月/日。

Output

对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input

1992/1/2
1989/12/2
1992/3/1
 

Sample Output

2
336
61
 


FAQ | About Virtual Judge |  Forum |  Discuss |  Open Source Project
All Copyright Reserved ©2010-2014  HUST ACM/ICPC TEAM 
Anything about the OJ, please ask in the  forum, or contact author: Isun
Server Time: 




#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>


int max(int la,int lb) //c的数学函数库中无此函数和min() 
{
if(la>lb)
return la;
return lb;
}


int main()
{
int t,i,j,k=0,c[1111],num1[1111],num2[1111],la,lb,l,cnt;
char a[1111],b[1111];
scanf("%d",&t); 
   
while(t--)
{
     getchar();  //gets()函数可吸收一行字符包括\n  因此在gets之后如果再有字符型的输入函数则不用加getchar() 

     scanf("%s%s",a,b);//   但是scanf就要加了 否则就会将回车当成下一个输入 
  
 la=strlen(a);
     lb=strlen(b);
 memset(num1,0,sizeof(num1));//数组清0后可以统一操作 如两个长短不相同的与长短相同程序统一 不用在分类讨论 
     memset(num2,0,sizeof(num2)) ;
     memset(c,0,sizeof(c));
     for(i=0;a[i]!='\0';++i)    //将数组倒序排列方便操作  序号对不好时举个例子 如i=0 
     {
       num1[i]=a[la-1-i]-'0';
 }
 for(i=0;b[i]!='\0';++i)     
 {
  num2[i]=b[lb-1-i]-'0';
 }
    
     l=max(la,lb);
     cnt=0;
     for(i=0;i<=l ;++i)    //主干程序 模拟大数相加 将其分解为一位数字的相加与进位两步 主要利用循环思想 就是找规律 
     {
         c[i]=num1[i]+num2[i]+cnt;
         if(c[i]>9)
         {
          c[i]-=10;
          cnt=1;
 }
 else
 {
  cnt=0;
 }
 }
 while(c[i]==0)    
 {
  --i;
  }
  
  ++k;
  printf("Case %d:\n",k);
  printf("%s + %s = ",a,b);
  for(j=i;j>=0;--j)
  {
  printf("%d",c[j]); 
  }
  if(t>0)
  printf("\n");   //格式应当注意想好之后再提交  不能应为小问题失掉比赛 
  printf("\n");
}
return 0;
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值