理由:出力の出力は、いくつかの余分なものになるときallRes列にallResはそう、最初のres一backで同定されているときので、とき出力に対処するのは難しいです
書式#include <iostreamの> の#include " アルゴリズム" の#include " cmath " の#include " 文字列" の#include <ベクトル> 使用して 名前空間はstdを、 INT のmain() { int型の合計= 200 。 ベクトル <ベクトル< int型 >> allRes。 INT phigh = 2、プラウ= 1 。 一方、(phigh> プラウ){ int型 CUR =(phigh +プラウ)*(phigh -プラウ+ 1)/2 ; もし(CUR < 合計) phigh ++ ; もし(CUR == 合計){ ベクトル < INT > RES。 以下のために(int型 ; I <= phigh I ++はI =プラウ) res.push_back(I)。 allRes.push_back(RES)。 耕す ++ ; // 。ベクトル<整数>()スワップ(RES)。 res.clear(); } 場合(CUR> 和) プラウ ++ 。 } // 用(ベクトル<ベクトル<整数>> ::それはallRes.beginを()=イテレータ、それ= allRes.end();!それ++){エラーCOUT // coutの<< *それ<<てendl; // } のための(int型 I = 0を私は++; iがallRes.size()<){ // 右COUT のための(INT J = 0 ; J <allResが[ 0 ] .sizeを(); J ++ ){ COUT << allRes [I] [J] << " " ; } COUT << ' の\ n ' ; } }
出力のより良好な制御を有する代替的に直接、二次元アレイ
書式#include <iostreamの> の#include " アルゴリズム" の#include " cmath " の#include " 文字列" の#include <ベクトル> 使用して 名前空間はstdを、 INT のmain() { int型の合計= 200 。 INT allRes [ 100 ] [ 100 ] = { 0 }。 INT phigh = 2、プラウ= 1 。 int型、T = 0 ; 一方、(phigh> プラウ){ INT CUR =(phigh +プラウ)*(phigh -プラウ+ 1)/ 2 。 もし(CUR < 合計) phigh ++ ; もし(CUR == 合計){ ため(INT ; J <= phigh; J ++ J =プラウ){ allRes [T] [J -plow] = J。 } T ++ 。 耕す ++ ; // 。ベクトル<整数>()スワップ(RES)。 // res.clear(); } であれば(CUR> 和) プラウ ++; } // (ベクトル<ベクトル<整数>> ::それはallRes.begin()=イテレータ、それ= allRes.end();!それ++)について{エラーCOUT // coutの<< *それ<<てendl; // } int型の F = 1 。 以下のために(int型 iは= 0 ; iは< 100 ; iは++){ // 右COUT 場合(== fは0)破ります。 用(int型 J = 0 ; J < 100 ; J ++ ){ 場合(allRes [I] [ 0 ] == 0 ){ F= 0 ; 破ります; } もし(allRes [I] [J]) COUT << allRes [I] [J] << " " 。 } COUT << ' の\ n ' ; } }