BUGCAL , solving a specific case

 My logic is that the problem can be broken down into four cases according to the the two numbers that is entered;

	both numbers are strictly greater than 10 let us call them j and k , suppose the number are 812 + 199, so according to the question the answer
	will be 901 , which my program successfully calculates by the logic;
	divide the number1 i.e 812/10 = 80 and stores it as d1 i.e. d1-->812/10;
	similarly d2-->199/10 ie 9;
	similarly store the remainders r1 and r2 of operation d1 and d2 respectively which would be 
	r1--->12 r2--->9;
	Now if r1+r2 is greater than 10 subtract 10 from them as their carried value while normal addition is to pe ignored as per the question and proceed to store it in temp;
	and if r1+r2 is lesser than than simply store it in temp variable;
	the final buggy sum would be sum = (d1+d2-10)*10+temp;
	
	Similar logic is applied in all the cases namely if let two variable to be calculate j and k
	j>10 k>10
	1=<j,k<=10
	j>10 k<10
	j<10 k>10
	
	All the values are exactly calculated according to the question 
	But the problem occurs when adding number like 988 + 122;
	the two values of both the number from left side are rightly calculated but leftmost side of both the numbers that are 9 and 1 are calculated
	as 10 rather than 0 
	I am unable to write a logic for that , can anyone suggest something ?
#include<iostream>

using namespace std;

int main()
{
	int test_cases = 0;
	int j , k = 0;
	int d1 , d2 ,r1 ,r2;
	int temp = 0;
    int sum = 0;
	cin>>test_cases;
	while(test_cases--)
	{
		cin>>j>>k;
	    if(j>10&&k>10)
	    { 
	      d1 = j/10;
	      d2 = k/10;
	      r1 = j%10;
	      r2 = k%10;
	      if(d1+d2>10)
	      	sum += (d1+d2-10)*10;
		if(r1+r2<10)
		sum  += r1+r2;
		else{
		temp = r1+r2-10;
		sum += temp;
	}
      }
      
    if(j>=1&&j<10&&k>=1&&k<10)
    {
    	if(j+k>=10)
    	sum += j+k - 10;
    	else
    	sum += (j+k);
	}
	
	if(j>10&&k<10)
	{
		d1 = j/10;
		r1 = j%10;
		sum += d1*10;
		temp = r1+k;
		if(temp<10)
		sum += temp;
	    if(temp>=10){
	    temp = temp-10;
	    sum +=temp;
	}
}

	if(k>10&&j<10)
	{
		d1 = k/10;
		r1 = k%10;
		sum += d1*10;
		temp = r1+j;
		if(temp<10)
		sum += temp;
	    if(temp>=10){
	    temp = temp-10;
	    sum +=temp;
	}
}

cout<<sum;
cout<<endl;
sum=0;
temp=0;

	}
	
	
}
	    


	

prob link?

1 Like