Sunday, August 27, 2017

10018 - Reverse and Add Uva Problem Solution & Logic


https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=959


তোমায় একটা সংখ্যা দেয়া থাকবে , সেই সংখ্যাটিকে তোমার পুরো রিভার্স করে  - দেয়া সংখ্যাটির সাথে
যোগ করে , যোগফল যদি প্যালিন্ড্রোম না হয় ; তাহলে , আবার এটাকে রিভার্স করে উপরের প্রোসেস এর মতো করে যেতে থাকবো , যতক্ষন না --- যোগফল প্যালিন্ড্রোম না হয় ।। 

চলো , একটা উদাহরণ দেখে আসি -----

195 , Initial number
591
----
786
687
-----
1473
3741
----
5214
4125
------
9339, Resulting palindrome
                                     
19ত    তাহলে , তোমায়  Resulting palindrome  ও কতোবার যোগের ঘটনাটি ঘটে ?? সেটা প্রিন্ট করতে হবে     হবে । উপরে , যোগের ঘটনা ঘটেছে মোট ৪ বার ।।

            চলো , কোড দেখে আসি ---------------

#include<stdio.h>
 
int main()
 
{
 
    long long  n,a,s,c;
 
    int t,i;
 
    while(scanf("%d",&t)==1)
    {
        for(i=1;i<=t;i++)
        {
            scanf("%lld",&n);
        a=n;
        c=0;
 
        while(1)
        {
            s=0;
        while(n!=0)
            {
                s=s*10+n%10;
                n/=10;
            }
        if(s==a){
        break;
}
        else
        {
        n=s+a;
        a=s+a;
        c++;
        }
 
 
    }
    printf("%lld %lldn",c,a);
        }
    }
 
   return 0;
}

No comments:

Post a Comment