當前位置:編程學習大全網 - 編程軟體 - C語言編程15選6全組合並且滿足條件問題

C語言編程15選6全組合並且滿足條件問題

#include?<iostream>

#include?<fstream>

using?namespace?std?;

#define?MAX?10?

int?res[MAX]?;//res存儲每次選擇的6個數

int?N,?M?;//N是15,M是6

ofstream?fout("c:\\result.txt")?;//文件輸出流,將結果輸出到c盤result.txt中

void?print(int?res[],?int?n)//將6個數字寫入文件

{

double?t?=?res[0]+res[1]?;

if(t?!=?10)//如果第壹個數字和第二個數字之和不是10就不打印

return?;

for(int?i?=?0;?i?<?n;?i++)//n是6

{

fout?<<?res[i]?<<?"?"?;

}

fout?<<?endl?;

}

void?com(int?last,?int?layer)?//last是當前res中存儲的最後壹個數,layer是遞歸的層數

{

if(layer?==?6)//遞歸到6層的時候打印說明已經選出6個數

{

print(res,?M)?;//調用print將數寫入文件

return?;

}

for(int?j?=?last+1;?j?<=?N-M+layer+1;?j++)//如果還沒選夠6個數,繼續選擇

{

res[layer]?=?j?;

com(j,?layer+1)?;

}

}

int?main()

{

N?=?15;?

M?=?6?;

com(0,?0)?;//其實res壹個數都沒選,遞歸層數為0

return?0?;

}

//結果保存到c盤下的result.txt

  • 上一篇:幫忙~~~~~網絡編程翻譯
  • 下一篇:armlinux匯編linuxarm匯編
  • copyright 2024編程學習大全網