hdu 1002 A+B Problem II

1384 단어 System
제목 링크:
제목의 대의: 두 개의 가수를 문자열로 표시하고 위치에 따라 더하면 10진 1이 된다.
코드는 다음과 같습니다.
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
using namespace std;
int n;
char s1[1100],s2[1100];
int len1,len2;
int main(void)
{
	int i,j,k,p;
	int flag;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		int a[1100]={0};
		flag=0;
		printf("Case %d:
",i); scanf("%s%s",s1,s2); len1=strlen(s1); len2=strlen(s2); j=len1-1; k=len2-1; p=0; printf("%s + %s = ",s1,s2); while(j>=0&&k>=0) { if(a[p]+(s1[j]-'0')+(s2[k]-'0')>=10)// , { a[p]=a[p]+(s1[j]-'0')+(s2[k]-'0')-10; a[p+1]++; } else a[p]=a[p]+(s1[j]-'0')+(s2[k]-'0'); p++; j--; k--; } if(j>=0) { for(int t=j;t>=0;t--) { a[p]=a[p]+(s1[t]-'0'); p++; } } else if(k>=0) { for(int t=k;t>=0;t--) { a[p]=a[p]+(s2[t]-'0'); p++; } } else if(a[p]!=0)// 10 p++; for(int t=p-1;t>=0;t--) { if(a[t]==0&&flag==0) continue; else { flag=1; printf("%d",a[t]); } } printf("
"); if(i!=n) printf("
"); } system("Pause"); return 0; }

좋은 웹페이지 즐겨찾기