ニンニクと少しいたずら。今回は、テストでは、彼女の妹は冷血殺害報告しています。
元々姉妹からラボに記録されたスペースで区切られた任意の二つの数字の間に、nの配列1。しかし、「ピット妹」ニンニクは実際にデジタル間のスペースを削除与えた数字の文字列にデジタル・シーケンスの全体の長さと1〜100であり、ヘッダスペースなし。
今、私の姉はすぐにテストデータ復旧にプログラムを書く見つけるニンニク、怒りを持っています。
入力:
入力ファイルの行、列は -実験データニンニクメッシングです。
文字列の長さ 1〜100。
出力:
出力コモンライン、元のテストデータの姉妹 --1にn個の出力。
任意の二つのデータの間にスペースがあります。
正解の要件に沿って複数設定した場合、任意のグループの出力とすることができます。
この質問への唯一の答えは、答えの要件が正しい満たしていません
サンプル入力のコピー
4111109876532
サンプル出力コピー
4 1 11 10 9 8 7 6 5 3 2
アイデア:
①列の数は1〜100であるので、それが2桁の数であってもよいが、また、今後のデジタルB出力を保存するために番号が続く出力の数、LEN計算された数を使用するように、数字列が与えられてもよいです。
数②は、再帰関数が続く、xの値を保持する配列bを使用しない場合は、そこに同じ数になる前に、出力の数を決定する最初に出力されるように、Xで表される次DEF関数に渡されます。もしそれは数xが出力される2つの数字で指定し、それは、xの値を保持するために使用される二つの数X、Bが格納され、そしてDEF関数に渡された数を下げています。
③最終的な出力フォーマットスペース、全ての数字は出力の数の出力に応じて配列b、Bを使用して保存されていると判定された場合。
書式#include <iostreamの> の#include < 文字列 > 使用して 名前空間はstdを、 char型 [ 105 ]。 INT LEN、N、B [ 105 ]。 ブール F、VIS [ 105 ]。 ボイド DEF(INT S、INT NUM) { 場合(f)のリターン; もし(S == LEN) { F = 真。 用(int型 iは= 0 ; I <NUM ++ i)が { coutの << B [i]は<< " " ; } を返します。 } INT X = [S] - ' 0 ' 。 もし(VIS [X] && X <= N && X>!0 ) { VIS [X] = 真。 B [NUM] = X。 DEF(S + 1、NUM + 1 )。 VIS [X] = 偽。 } 、X = X * 10 + [S + 1 ] - ' 0 ' 。 もし(VIS [X] && X <= N && X>!0 ) { VIS [X] = 真。 B [NUM] = X。 DEF(S + 2、NUM + 1 )。 VIS [X] = 偽。 } } int型のmain(){ CIN >> 。 LEN = STRLEN()。 N =(LEN <= 9?LEN:(LEN - 9)/ 2 + 9 )。 DEF(0);、0 }