1樓:匿名使用者
#include
void main()}}
}int num=100*str[6]+10*str[7]+str[8];
int sum=a+b+c+d+e+f+g+h+i;
for(i=0;i<9;i++)
if((i+1)%3==0)}}
cout< if(num<987) 2樓:匿名使用者 #include int remove(int* list,int num)int main() ;if(remove(list,abc)==-1 || remove(list,def)==-1 || remove(list,ghi)==-1) continue; printf("%d %d %d\n",abc,def,ghi); }return 0;} 3樓:施勇旺 問題出在 break;上 以下是可行的實現: //忽略頭 int a,b,c,d,e,f,g,h,i; for(a=1;a<10;a++) for(b=1;b<10;b++) for(c=1;c<10;c++) for(d=1;d<10;d++) for(e=1;e<10;e++) for(f=1;f<10;f++) for(g=1;g<10;g++) for(h=1;h<10;h++) for(i=1;i<10;i++) }printf("time used=%.21f\n",(double)clock()/clocks_per_sec); return 0; 以下是更好的實現:主要是利用一個陣列實現集合(set)的功能。 //忽略頭 for(int i = 102;i<333;i++)if(flag==1) printf("%d %d %d\n",i,2*i,3*i); }return 0; 目前的最佳答案是一個不錯的方法,數學支援如下: 1~9加起來真能是45, 1~9乘起來只能是362880其實應該反過來說 若9個小於10 的正整數的和為45,積為362880,則這9個數是1,2,3...9的一個排列。 調整法可證。 4樓:丶失丶心丶瘋丶 利用遍歷,因為組成的數的最小值為123,最大值為789,同時,三個數滿足1:2:3的比例關係,因此只需要遍歷abc從最小值到最大值即可。 abc最小值為123,因為abc:ghi=1:3,所以abc的最大值為組成三位數的最大值的三分之一,即329。此時只需要遍歷abc從123到329即可。 def=abc*2,ghi=abc*3。 這裡你需要知道1-9這9個數的和為45,乘積為362880,只需要判斷生成的數每一位滿足這個條件即可。 具體程式如下(c++): #include using namespace std; int sum(int i) //求三位數每位相加之和int mult(int i) //求三位數每位相乘之積int main() }system("pause"); return 0;} 5樓:匿名使用者 這道題以前做過, 有點印象 其實這道題就2個地方要注意, 也是解題關鍵 abc:def:ghi=1:2:3 1,2,3……,9組成3個三位數abc,def和ghi,每個數字恰好使用一次 對於第一個地方, 我們可以用1個迴圈, 加3個變數來實現 就是for(i = 123; i <= 329; i++) i 最小隻能是123, 最大隻能是329(因為最大數字只能是987) 第2個地方的實現, 我們可以用數學的方法來實現 1~9加起來真能是45, 1~9乘起來只能是362880 所以我們可以將前面的i, j, k分別分解出來的9位數字相加, 相乘, 看最後的結果是不是45,362880 具體** //用1,2,3……,9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要求abc:def:ghi=1:2:3.輸出所有解。 #include int main() return 0; }效果: ps:若有不明白的地方, 請追問 6樓:匿名使用者 #include int func(int a) ;for(temp=a%10;a;a/=10,temp=a%10)if(flag[temp]++ == 1) return 0; return 1; }void main() 7樓:匿名使用者 初看覺得你這個程式的演算法還行。仔細一看覺得你的演算法不好。你是在最裡層迴圈裡面使用break語句,會給計算機帶來很大的計算量。這個題應該不難。給你稍微改一下,你自己試一下。 for(a=1;a<10;a++)}} 後面每層都這樣。自己多思考一下 用0至9這10個數字恰好組成一位數,兩位數,三位數,四位數各一個(每個數字只用一次),並且這四個數 8樓:匿名使用者 已知:四位數是2940。首先對2940這個四位數進行分析: 因:尾數是0,肯定能被2和5整除,2+9+4+0=15肯定能被3整除,得其他三個數都是奇數,且尾數只能是奇數,尾數也不能為5,並且一個數各位數字之和不能被3整除。 故尾數只能是1、3、7,(注意:兩兩互質是任意兩個都互質,並不是整體互質) 因:2940各位數字的和為2+9+4+0=15,15是3的倍數,得出:一位數不能是3;(看題目時注意一位數和一個數的區別,) 2940的尾數是0,也得出尾數不能是5,那麼尾數只能是1、3、7 2940能被7整除(2940÷7=420),故一位數不是7, 綜上:一位數不能為偶數6、8,也不能為3、5、7,得出一位數只能是1 又因:一個數只用一次,得:3、5、6、7、8沒有用,其中5、6、8必須是十位或者百位,3、7必須是尾數, 因:若組成一個三位數:可能是以下三個數字互相組合:563、567、683、687、583、587 先排除:6+7+8=21,5+6+7=18,剩餘的只有563組合、683組合、583組合、587組合。 如果563之間組合,那麼二位數必須87,因8+7=15,故不能和2940互質, 如果是638之間組合,那麼二位數,必須是57,因5+7=12,故不能於2940互質, 如果是587之間組合,那麼二位數,必須是63,因6+3=9,也不能與2940互質, 最後只剩下:583組合,那麼二位數必須是67,6+7=13,不能被3整除,(雖然不能確定,但排除法可以得出) 583之間組合,358與538(是偶數),385與835(尾數是5),853與583, 得出:一位數是1;二位數是67;三位數是583或者853 驗算:1不用驗算 67是質數,和853、583、2940都不能整除,故不用驗算,(若:二個數,小數是質數,且不能被大數整除,那麼他們一定是互質) 583和2940資料大,需要驗算: 2940÷583=5餘25 583÷25=23餘8 25÷8=3餘1 583和2940公約數是1,互質, 再驗算853和2940是否互質 2940÷853=5餘381 853÷381=2餘91 381÷91=4餘17 91÷17=5餘6 17÷6=2餘5 6÷5=1餘1 故也是互質, 注:餘1是互質,餘0是公約數, 故3位數的和是1+67+853=921或者1+67+583=651 9樓:我是穿越迷 2940的約數有1、2、5、7…… 另外3個數尾數不 能是5、8、6,一位數不能是3、7,一位數只能是1,兩位數和三位數的尾數只能是3或7,三位數不能由5、6、7、8或6、7、8組成; 兩位數個位數是3,十位數不能是5、6,只能是8;三位數5、6、7不行,兩位數尾數只能是7、十位不能是5、8、3;兩位數是67,三位數是853 1+67+853=921 將數字1至9分別填入右邊豎式的方格內使算式成立(每個數字恰好使用一次),那麼加數中的四位數最小是____ 10樓:匿名使用者 首先從1---9中選三個數相加得8或18,確定各位上的數字: (1)1+3+4=8, (2)1+2+5=8, (3)1+8+9=18, (4)3+7+8=18, (5)4+6+8=18, (6)5+6+7=18. 假如(1)成立,則各位上的三個數字確定是:1,3,4.則十位上的三個數字應該從2,5,6,7,8,9中確定,並且需要滿足三個數相加是10或20.成立的有: a:5+6+9=20; b:5+7+8=20. 假如a成立,那麼十位上的三個數字確定是:5,6,9.那麼百位上的數字只能是2,7,8.但是, 2+7+8=17,再加上十位上的相加進的2.17+2=19,不是整十的數.不滿足題目要求.同樣的方法驗證b也不符合題目要求. 用同樣的方法驗證(2),(3)都不滿足題目要求.而(4)個位上的三個數是:3,7,8. 十位上的三個數是:4,6,9, 百位上的三個數是:1,2,5. 要求最小的四位數是:1143. 而(5)個位上的三個數是:4,6,8, 十位上的三個數是:3,7,9, 百位上的三個數是:1,2,5. 要求最小的四位數是:1134. 而(6)個位上的三個數是:5,6,7, 十位上的三個數是:2,8,9, 百位上的三個數是:1,3,4. 要求最小的四位數是:1125. 很明顯這三個四位數最小的是一個1125. 故答案為:1125. 用0至9這10個數字恰好組成一位數、兩位數、三位數、四位數各一個(每個數字只能用一次),且這四個數兩兩 11樓:匿名使用者 2940=2×2×3×5×7×7 則另外三個數不能被2、3、5、7整除 剩下的數字有1、3、5、6、7、8 因5、6、8不能在個位,所以三個數的個位是1、3、7一位數不能是3或7 則一位數只能是1 若二位數的個位是3,則十位是5、6、8都不行因為63能被3整除, 若是53,剩下687或867能被3整除. 若是83,剩下567或657能被3整除. 則二位數的個位只能是7 其十位不能是5或8,則二位數是67 三位數是583或853都行. 所以另外三個數可能是:1、67、583或853. 能被3整除的數,各位數字相加為3的倍數。將數字0到9分成3組 a,3n 0,3,6 9 b,3n 1 1,4,7 c,3n 2 2,5,8 3位數中的3個數字 1 都從a中選取,第1位不為0,共有 3 3 2 182 都從b中選取,3 2 1 6 3 都從c中選取,3 2 1 6 4 從a b c中... 2個。用10以內的質數有 2 3 5 7,含有因數2,個位是偶數,只有2,是3的倍數,百位 十位 個位是3的倍數,個位已經是2,百位 十位等於4,7,10。2,3,5,7中兩數的和為4,7,10的有2 2 4 2 5 7 3 7 10。所以這些三位數有 222,252,522,372,732。要使得... 墨汁諾 用 2 3 4 7 9 組成三位數乘兩位數,積最大與積最小分別是 最小積為 24x379 9096 最大積為 93x742 69006 例如 確定兩數的最高為 為9 5 依次確定下面的數字,把剩下的最大的數字放在zhi乘數和被乘數上 從左數起第二個因數 3 1 2.剩下的0按題目要去放在乘數...由0,1,2,3,4,5,6,7,8,9組成三位數,這個三位數中不能有數字重複(如112),求能被3整除的數有多少個
用10以內的質陣列成三位數,這些三位數,既是2的倍數,又是
用23479組成三位數乘兩位數積最大積最小分別是