느낌 ¶
2006-01-10 Accepted 0.273 452
역시 실수였었다. 암튼 통과 ~ ㅋㅋ
역시 실수였었다. 암튼 통과 ~ ㅋㅋ
잘못된 습관1.
무조건 코드짠다- (설계하지 않고)
문제점1 -> 나중에 고쳐야 할 것이 많다. 생각하지 못했던 것들을 수정하느라 시간이 더 많이 간다.
고치자 !!!
무조건 코드짠다- (설계하지 않고)
문제점1 -> 나중에 고쳐야 할 것이 많다. 생각하지 못했던 것들을 수정하느라 시간이 더 많이 간다.
고치자 !!!
코드 ¶
~cpp
#include <iostream>
using namespace std;
#include <math.h>
int numlen(int num)
{
int turn = 0;
while(num >= 10)
{
num /= 10;
turn++;
}
return (turn+1);
}
int process(int n1, int n2)
{
int nums1[11], nums2[11];
int i, max_len, big_num, small_num, num1_len, num2_len, operation = 0;
num1_len = numlen(n1);
num2_len = numlen(n2);
if(num1_len > num2_len)
max_len = num1_len;
else
max_len = num2_len;
if(n1 >= n2)
{
big_num = n1;
small_num = n2;
} else {
big_num = n2;
small_num = n1;
}
for(i = numlen(small_num); i <= max_len+1; i++)
{
nums2[i] = 0;
}
nums1[max_len] = 0;
nums2[max_len+1] = 0;
for(i = 0; i < numlen(big_num); i++) // 나누어 넣기
{
nums1[i] = big_num / pow(10, i);
nums1[i] = nums1[i] % 10;
}
for(i = 0; i < numlen(small_num); i++) // 나누어 넣기
{
nums2[i] = small_num / pow(10, i);
nums2[i] = nums2[i] % 10;
}
for(i = 0; i < max_len; i++)
{
if((nums1[i]+nums2[i]) >= 10)
{
++operation;
nums1[i+1] += 1;
}
}
return operation;
}
int main()
{
int n1, n2, operation;
while(cin >> n1 >> n2)
{
if(n1 == 0 && n2 == 0)
break;
operation = process(n1,n2);
//output
if(operation == 0)
cout << "No carry operation." << endl;
else if(operation == 1)
cout << "1 carry operation." << endl;
else
cout << operation << " carry operations." << endl;
}
return 0;
}










