用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,然後尋找滿...