「AOJ再挑戦51~55」の編集履歴(バックアップ)一覧に戻る

AOJ再挑戦51~55 - (2014/01/29 (水) 22:29:58) のソース

*問51 Differential II
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0051
数字の文字列を並べ変えて最大の数と最小の数を作った時その差を計算する問題。
解法
並べ替えて手前と後ろから数字に直すだけです。

 #include<stdio.h>
 #include<algorithm>
 
 int main(){
 	int n;
 	char text[9];
 	scanf("%d",&n);
  	while(n--){
 		int max=0,min=0;
 		scanf("%s",text);
 		std::sort(text,text+8);
 		for(int i=0;i<8;i++) min=min*10+text[i]-'0';
  		for(int i=7;i>=0;i--)max=max*10+text[i]-'0';
 		printf("%d\n",max-min);
 	}
 }