ブルーブリッジカップテーマ練習のデジタルブラックホール
2985 ワード
タイトルの説明:
任意の5桁の数、例えば:34256、その数字を乱して、並べ直して、最大の数:65432、最小の数23456を得ることができます.この2つの数字の差を求めて、得ます:41976、この数字を再び上記の手順を繰り返します(5桁未満であれば前に0を足します).このように往復すると、数字はある循環圏(デジタルブラックホールと呼ばれます).例えば、さっきの数字は:[82962,75933,63954,61974]に落ちます.このループ.プログラムを作成して、5桁の可能なすべてのループを見つけて、出力してください.各ループは1行を占めています.このうち5桁がすべて同じであればループは[0]であり,これは考慮しなくてもよい.ループリングの出力フォーマットのシミュレーション:[82962,75933,63954,61974]数値の前後順序は考慮しなくてもよい.
卵が少し痛い--
よし...C++は久しぶりです
任意の5桁の数、例えば:34256、その数字を乱して、並べ直して、最大の数:65432、最小の数23456を得ることができます.この2つの数字の差を求めて、得ます:41976、この数字を再び上記の手順を繰り返します(5桁未満であれば前に0を足します).このように往復すると、数字はある循環圏(デジタルブラックホールと呼ばれます).例えば、さっきの数字は:[82962,75933,63954,61974]に落ちます.このループ.プログラムを作成して、5桁の可能なすべてのループを見つけて、出力してください.各ループは1行を占めています.このうち5桁がすべて同じであればループは[0]であり,これは考慮しなくてもよい.ループリングの出力フォーマットのシミュレーション:[82962,75933,63954,61974]数値の前後順序は考慮しなくてもよい.
卵が少し痛い--
よし...C++は久しぶりです
//
// main.cpp
// buleBirdgeGamesTest
//
// Created by kino on 14-3-17.
//
//
#include
#include
using namespace std;
#define SWAP(a,b) int temp = a;a = b;b = temp;
#define NOTFOUND -1
/**
*
*
* @param arr
* @param len
* @param isDesc
*/
void bubbleSort(int arr[], int len, bool isDesc){
for (int i = 0; i < len; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (isDesc) {
if (arr[j]>arr[j+1]) {
SWAP(arr[j],arr[j+1])
}
}else{
if (arr[j] array, int a){
vector::iterator it ;
int i = 0;
for (it = array.begin(); it != array.end(); it++,i++) {
if (*it == a) {
return i;
}
}
return NOTFOUND;
}
/**
*
*
* @return
*/
int isArrrayExist(vector> listArray, vector aListArray){
vector>::iterator it ;
int number = aListArray[0];
for (it = listArray.begin(); it != listArray.end(); it++) {
if (isNumberExist((vector(*it)),number) != NOTFOUND) {
return 1;
}
}
return NOTFOUND;
}
/**
*
*
* @param numArray
*/
void printResult(vector> numArray){
vector>::iterator it;
for (it = numArray.begin(); it!= numArray.end(); it++) {
vector::iterator itt;
cout <> numArray;
vector tempArr;
for (int i = 10000; i < 99999 ; i++) {
if (i % 11111 == 0) continue;
int next = i;
for (int j = 0 ; j < 50 ; j++) {
next = findNum(next);
int startIdx = isNumberExist(tempArr, next);
tempArr.push_back(next);
if (startIdx != NOTFOUND) {
vector snipArray;
for (int k = startIdx; k < tempArr.size() - 1; k++) {
snipArray.push_back(tempArr[k]);
}
if (isArrrayExist(numArray, snipArray) == NOTFOUND) {
numArray.push_back(snipArray);
}
break;
}
}
tempArr.clear();
}
printResult(numArray);
return 0;
}