Задано целое трицифровое число.Переставляя цифры этого числа образуйте наименее возможное трицифровое число.
Входные данные
Одно целое трицифровое число.
Выходные данные
Ответ на задачу.
#include<stdio.h> #include<stdlib.h> #include<math.h> #include <iostream> using namespace std; int main() { __int64 a,b,i,max,min,ser,q,c; cin>>q; if(q>=0){ i=0; a=q/100; b=q%100/10; c=q%10; if(a>=b&&a>=c)max=a; else if(b>=c&&b>=a)max=b;else max=c; if(a<=b&&a<=c)min=a; else if(b<=c&&b<=a)min=b;else min=c; if(a==max&&b==min||a==min&&b==max)ser=c; if(c==max&&b==min||c==min&&b==max)ser=a; if(a==max&&c==min||a==min&&c==max)ser=b; if(c==a&&c>b||c==b&&c>a||a==b&&a>c)ser=max; if(c==a&&c<b||c==b&&c<a||a==b&&a<c)ser=min; i=min*100+ser*10+max; if(i<10) cout<<i*100<<endl ; else if (i<100&&i>10)cout<<ser<<min<<max<<endl; else cout<<i<<endl ;} else if(q<0) { i=0; q=abs(q); a=q/100; b=q%100/10; c=q%10; if(a>=b&&a>=c)max=a; else if(b>=c&&b>=a)max=b;else max=c; if(a<=b&&a<=c)min=a; else if(b<=c&&b<=a)min=b;else min=c; if(a==max&&b==min||a==min&&b==max)ser=c; if(c==max&&b==min||c==min&&b==max)ser=a; if(a==max&&c==min||a==min&&c==max)ser=b; if(c==a&&c>b||c==b&&c>a||a==b&&a>c)ser=max; if(c==a&&c<b||c==b&&c<a||a==b&&a<c)ser=min; i=-1*(max*100+ser*10+min); if(i>-10) cout<<i<<endl ; else if (i<100&&i>10)cout<<max<<min<<ser<<endl; else cout<<i<<endl ;} return 0; }
Есть решение которого нет на сайте? Пиши admin@devexe.top