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