https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2307
খুবই সহজ একটা প্রোবলেম , একটি সংখ্যা দেয়া থাকবে , যতক্ষন না - সংখ্যাটি ১০ এর ছোট না হয় , ততক্ষন তার ডিজিটগুলোর যোগফল বের করতে হবে । যেমন , ধরো দেয়া আছে সংখ্যাটি ১২৩৪৯
তাহলে , f(12349) = 1+2+3+4+ 9 = 19
f(19) = 1+9 =10
f(10) = 1+0 = 1
যখন , এভাবে ভাংতে ভাংতে ১০ এর ছোট হয়ে যায় , ঠিক তখনই সেটাই হবে উত্তর ।
চলো কোড দেখি ,
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
long long int n;
while(scanf("%lld",&n)==1){
if(n==0)
break;
t=0;
while(true){
while(n!=0){
t=t+(n%10);
n=n/10;
}
if(t/10==0){
break;
}
else{
n=t;
t=0;
}
}
printf("%d\n",t);
}
return 0;
}
খুবই সহজ একটা প্রোবলেম , একটি সংখ্যা দেয়া থাকবে , যতক্ষন না - সংখ্যাটি ১০ এর ছোট না হয় , ততক্ষন তার ডিজিটগুলোর যোগফল বের করতে হবে । যেমন , ধরো দেয়া আছে সংখ্যাটি ১২৩৪৯
তাহলে , f(12349) = 1+2+3+4+ 9 = 19
f(19) = 1+9 =10
f(10) = 1+0 = 1
যখন , এভাবে ভাংতে ভাংতে ১০ এর ছোট হয়ে যায় , ঠিক তখনই সেটাই হবে উত্তর ।
চলো কোড দেখি ,
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
long long int n;
while(scanf("%lld",&n)==1){
if(n==0)
break;
t=0;
while(true){
while(n!=0){
t=t+(n%10);
n=n/10;
}
if(t/10==0){
break;
}
else{
n=t;
t=0;
}
}
printf("%d\n",t);
}
return 0;
}
No comments:
Post a Comment