程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu1028-Ignatius and the Princess III

hdu1028-Ignatius and the Princess III

編輯:C++入門知識

[html]
#include<iostream> 
using namespace std; 
  
const int _max = 121; 
//c1是保存各項質量砝碼可以組合的數目 
//c2是中間量,保存沒一次的情況 
int c1[_max], c2[_max];   
int main() 
{   //int n,i,j,k; 
    int nNum;  // 
    int i, j, k; 
  
    while(cin >> nNum && nNum)  
    { 
       for(i=0; i<=nNum; ++i)   // ---- ① 
       { 
           c1[i] = 1; 
           c2[i] = 0; 
       } 
       for(i=2; i<=nNum; ++i)   // ----- ② 
       { 
  
           for(j=0; j<=nNum; ++j)   // ----- ③ 
              for(k=0; k+j<=nNum; k+=i)  // ---- ④ 
              { 
                  c2[j+k] += c1[j]; 
              } 
           for(j=0; j<=nNum; ++j)     // ---- ⑤ 
           { 
              c1[j] = c2[j]; 
              c2[j] = 0; 
           } 
       } 
       cout << c1[nNum] << endl; 
    } 
    return 0; 

  

#include<iostream>
using namespace std;
 
const int _max = 121;
//c1是保存各項質量砝碼可以組合的數目
//c2是中間量,保存沒一次的情況
int c1[_max], c2[_max]; 
int main()
{   //int n,i,j,k;
    int nNum;  //
    int i, j, k;
 
    while(cin >> nNum && nNum)
    {
       for(i=0; i<=nNum; ++i)   // ---- ①
       {
           c1[i] = 1;
           c2[i] = 0;
       }
       for(i=2; i<=nNum; ++i)   // ----- ②
       {
 
           for(j=0; j<=nNum; ++j)   // ----- ③
              for(k=0; k+j<=nNum; k+=i)  // ---- ④
              {
                  c2[j+k] += c1[j];
              }
           for(j=0; j<=nNum; ++j)     // ---- ⑤
           {
              c1[j] = c2[j];
              c2[j] = 0;
           }
       }
       cout << c1[nNum] << endl;
    }
    return 0;
}
 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved