請設計一個程式,輸入N個正整數,然後輸出一個三角形陣列,其中相鄰兩元素之差取其絕對值至於所對英兩元素之上面。例如89781213,輸出結果如下:
    10
   55  65
 11   66  1
89  78   12 13
++++++++++++++++++++++++++++++++++

#include
#include
#include
//#include <>
using namespace std;
void CalABS(int Num,vector& vecPre,vector& vecNext)
{
    //cout<<"CalABS"<
    for(int i=0;i    {
        vecNext[i] = abs( vecPre[i]-vecPre[i+1]);
    }
}

int main(int argc ,char* argv[] )
{
    //cout<<"argc="<    //cout<<"argv[1]="<
    long Maxlen=0;
    int Num =argc-1;
    vector > Array(Num, vector(Num));

    for(int i=0 ;i < Num ;++i)
    {
        Array[0][i]= atof(argv[i+1]);
        long Len = strlen(argv[i+1]);
        if( Len > Maxlen )
        {
            Maxlen = Len;
        }
    }
    //cout<<"Maxlen="<
    for(int j=0;j < Num;++j )
    {
        int ThisNum = Num -j;
        //cout<<"Array[0]["<        if ( 1 != ThisNum)
        { CalABS(ThisNum,Array[j],Array[j+1]);}
    }
    //cout<<"Maxlen="<    //string strBlank(Maxlen,' ');


    for(int Level(Num-1),Count(1) ;Level>=0;--Level,++Count)
    {
      for(int bt=0;bt      {
        cout.width(Maxlen);
        cout<<" ";
      }
      //cout.width(Maxlen);
      //cout<<" ";

      //cout<<"Count="<
       for(int m=0;m < Count ;++m)
      {
        cout.width(Maxlen);
        cout<        cout.width(Maxlen);
        cout<<" ";
      }

      cout<    }


    return 0;

}
++++++++++++++++++++EX:

[root@mos01_linux ABS]# ./main 01 22 20 33 66 99
          10
         1  11
       8   9  20
    19  11  20   0
  21   2  13  33  33
 1  22  20  33  66  99
 
arrow
arrow
    全站熱搜

    rangerll 發表在 痞客邦 留言(0) 人氣()