利用9個陣列組成三組數

2021-06-20 10:04:48 字數 1031 閱讀 5764

用1、2、3、4、5、6、7、8、9九個數字拼成乙個九位數(每個數字恰好用一次),使得它的前三位、中間三位、最後三位的比值是1 : 2 : 3。例如192384576就是乙個合法的解,因為192 : 384 : 576 = 1 : 2 : 3。

#include using namespace std;

void sulotion()

; int flag[10]=;

bool b=true;

int temp1[3],temp2[3];

for(int i=0; i<3; ++i){

flag[i+1]=1;

for ( int j=0; j<9; ++j ){

if (i==j) continue;

flag[j+1]=1;

for ( int k=0; k<9; ++k ){

if (i==k||j==k) continue;

int num1 = 2*(a[i]*100+a[j]*10+a[k]);

int num2 = (num1>>1)*3;

if (num1>=1000 || num2>=1000)

continue;

flag[k+1]=1;

for ( int index=0; index<3; ++index ){

temp1[index]=num1%10;

temp2[index]=num2%10;

if (flag[temp1[index]] ) b=false;

flag[temp1[index]]=1;

if (flag[temp2[index]]) b=false;

flag[temp2[index]]=1;

num1/=10;

num2/=10;

if ( index ==2 && b ){

cout<<( 1*(a[i]*100+a[j]*10+a[k]))<<" "<< 2*(a[i]*100+a[j]*10+a[k])<<" "<< 3*(a[i]*100+a[j]*10+a[k])<

乙個數由三個素數的和組成的方案數

題解 1 先判斷兩個素數w i w j 的和是否大於n 2,若小於則說明數字n不可能由三個素數組成 2是最小的素數 2 再判斷n w i w j 是否是素數 3 保證w i w j n w i w j 是遞增的,避免重複計數 注意laz要和線段樹陣列開一樣大小 include include inc...

找出陣列中有多少組和小於k的三個數python版

給出乙個長度為n的陣列arr,和乙個數k,找出陣列中有多少組和小於k的三個數,即arr a arr b arr c 輸入 6 第一行為乙個整數n,代表輸入陣列的長度 2 0 1 2 3 6 第二行為n個整數 2 第三行為乙個整數k 輸出 4 乙個整數,表示有多少組滿足條件的三元組 import sy...

陣列中三個數和為零

前面看到的問題是陣列a中,和為固定值sum的兩個數。我們一般的做法是先給陣列排序,然後陣列前後各有乙個下標i j,如果a i a j sum,則j 如果a i a j 有乙個類似的擴充套件問題就是 找到乙個是陣列中和為零的三個數,一般的解決方法也是設定三個下標變數,i,j和k。每次固定i,然後尋找滿...