Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
RGB7583 - Давталт |
Натурал тоог дараах алхамаар хувиргая.
- Тооны цифрүүдийг буурахааар эрэмбэлнэ.
- Тооны цифрүүдийг өсөхөөр эрэмбэлнэ.
- 1-р алхамд үүссэн тооноос 2-р алхамд үүссэн тоог хасна.
- Энэ нь тодорхой алхамын дараа 6174 болж давтагдана.
Жишээ нь: 1243 тоо өгөгдсөн бол
4321-1234=3087
8730-387=8352
8532-2358=6174
7641-1467=6174 болж давталтын урт нь 4 байна.
Даалгавар: Натурал тоо өгөгдөхөд давталтын уртыг ол. Өгөгдсөн тооноос хамаараад давтагдах тоо ямарч алхамаас эхэлж болно. Давталтыг эхнээс нь тоолно.
Input
Натурал тоо. 232-аас бага.
Output
Давталтын тоо.
Example
Input 1 :
1243
Output 1 :
4
Input 2 :
444
Output 2 :
2
Input 3 :
495
Output 3 :
1
Нэмсэн: | Bataa |
Огноо: | 2013-02-06 |
Хугацааны хязгаарлалт: | 1s |
Эх кодын хэмжээний хязгаарлалт: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Програмчлалын хэлүүд: | ADA95 ASM32 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE |
Эх сурвалж: | 2013 он аймаг, багш |
hide comments
|
|||||||
2018-01-15 13:56:10
#include<iostream> #include<algorithm> using namespace std; string b; int main() { long long a,k,c[1000],m,i,q[10000],j,l=1,u=0,f=1,z=0,count=0,h=1,v[10000],g; cin>>a; while(true){ q[0]=a; k=a; while(k>0){ c[l]=k%10; k=k/10; l++; } sort(c+1,c+l); for(j=l-1;j>0;j--){ u=u*10+c[j]; } m=a; while(m>0){ if(m%10!=0) { v[f]=m%10; f++;} m=m/10; } sort(v+1,v+f); for(int y=1;y<f;y++){ z=z*10+v[y]; } f=1; a=u-z; q[h]=a; h++; z=0; u=0; l=1; count++; sort(q+1,q+h); for(g=2;g<h;g++){ if(q[g-1]==q[g]){ cout<<count; return 0;} } } } |
|||||||
2017-02-15 04:34:27
#include<stdio.h> #include<algorithm> using namespace std; int main() { long long n,a[10000],nn,b=0,i=1,s=0,m[1000],j,k=5,l=0,u,t=0; scanf("%lld",&n); nn=n; while(k) { while(n) { a[i]=n%10; n=n/10; i++; t++; } sort(a+1,a+t+1); for(i=1;i<=t;i++) { s=s*10+a[i]; } for(i=t;i>=1;i--) { b=b*10+a[i]; } i=1; t=0; n=b-s; printf("%d-%d=%d\n",b,s,n); k--; b=0; s=0; //if(n==nn) } } |
|||||||
2016-03-18 18:45:34 baatarhuu
: #include <stdio.h> #include <stdlib.h> #include <algorithm> using namespace std; int mas1[10000]; int KK(int p) // Ð òîîãîî ìàññèâò õèéõ. ?ñ?õ áîëîí áóóðõààð ýðýìáýëýýä ÿëãàâàðûã íü àâ÷ áóöààõ ôóíêö { int m=p; int ma=0; int mas[100]; while (m>0) { mas[ma]=m; ma++; m=m/10; } sort(mas,mas+ma); int z=0; for (int i=0;i<ma;i++) z=z*10+mas[i]; reverse(mas,mas+ma); int z1=0; for (int i=0;i<ma;i++) z1=z1*10+mas[i]; return z1-z; } bool smas(int a,int p) { for (int i=0;i<a;i++) if (mas1[i]==p) return true; return false; } main() { // freopen("orolt.in","r",stdin); // freopen("garalt.out","w",stdout); int a; scanf("%d",&a); int count=0; mas1[count]=a; int s=a; count++; while (!smas(count,KK(s))) { s=KK(s); mas1[count]=s; count++; } printf("%d",count); } aldaag ni heleed ogooch |
|||||||
2015-11-24 10:29:19 gundalai
Last edit: 2015-11-27 13:01:41 |
|||||||
2015-05-11 03:33:05 erdenebayr_d
яг өмнөхтэй нь адилхан байх гарахаар давталтаа зогсооно гэхээр төгсгөлгүй давталт явж байна тэгэхээр өмнө нь гарсан ялгаваруудаа бүгдийг нь хадгалаад тэд нарын аль нэг нь давтагдахад шууд зогсоогоод үеийг нь хэвлэх юм байна жишээ нь 74943 гэж оруулахад 97443 - 34479 = 62964 96642 - 24669 = 71973 97731 - 13779 = 83952 98532 - 23589 = 74943 гээд энэ тоо нь ялгавараар гарсан эсвэл анх өгөгдсөн тоотой тэнцүү болонгуут хэд давтагдсаныг нь хэвлэх ёстой юм байна |
|||||||
2015-02-26 12:08:00 G.Uuganbayar BKH
ажидллах үеийн аддаа гээд байна Би с дээр бодсон функц ашиглаж яахуу |
|||||||
2013-04-21 07:28:08 amarbat
Massiv ashiglanaad bodno. Toogoo massivt hiigeed daraa ni ih bolon bagaar erembeleed uussen massivuudaa butsaaj too bolgoj avaad ter toogoo umnu ni davtagdsan eshiig shalgaad boldchihnoo |
|||||||
2013-04-16 14:03:45 rain
hehe function bichsen bol c-geer bish c++-r yawuuldiim bna |
|||||||
2013-04-11 16:58:51 Iderbat
HaPaH ene bodlogiig yaj bodsiin ? |