[정리] ACM 코드 정리 BUN 1006.

http://www.bnuoj.com/bnuoj/problem_show.php?pid=1006
우선 입력 한 데 이 터 를 배열 에 저장 합 니 다.이 어 위치 에 따라 덧셈 을 하면 서 진 위 를 판단 한다.마지막 으로 요구 하 는 형식 으로 출력 합 니 다.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

char a[11],b[11],stack[11];


void opration(char *a,char *b){
	int topa = strlen(a)-1;
	int topb = strlen(b)-1;
//	int len = lena<lenb?lenb:lena;
//	int jinwei = 0;
//	int temp;
//	int op=0;
//	for(int i =len-1;i>=0;i--){
//		temp = (i>lena?0:a[i]-'0') + (i>lenb?0:b[i]-'0') + jinwei;
//		jinwei = temp/10;
//		if(jinwei == 1)op++;
//	}
	int temp = 0;
	int jinwei =0;
	int op = 0;
	while(1){
		if(topa<0 && topb<0)break;
		temp = (topa<0?0:a[topa]-'0') + (topb<0?0:b[topb]-'0') + jinwei;
		jinwei = temp/10;
		if(jinwei == 1)op++;
		topa--;
		topb--; 
	}
	
	
	if(op == 0)printf("No carry operation.
"); if(op==1)printf("%d carry operation.
",op); if(op!=0&&op!=1) printf("%d carry operations.
",op); } int main(int argc, char** argv) { while(scanf("%s%s",a,b)){ if(!strcmp(a,"0") && !strcmp(b,"0"))break; opration(a,b); } return 0; }

좋은 웹페이지 즐겨찾기