1.請問有幾題答案是1(1)1 (2)2(3)3(4)4(5)5
2.請問有幾題答案是2 (1)1 (2)2(3)3(4)4(5)5
3.請問有幾題答案是3 (1)1 (2)2(3)3(4)4(5)5
4.請問有幾題答案是4 (1)1 (2)2(3)3(4)4(5)5
5.請問有幾題答案是5 (1)1 (2)2(3)3(4)4(5)5
6.請問有幾題答案和該題的下一題答案差1 (1)1 (2)2(3)3(4)4(5)5
7.請問有幾題答案與題號有大於1的公因數(1)1 (2)2(3)3(4)4(5)5
8.請問有幾題答案大於題號(1)1 (2)2(3)3(4)4(5)5
9.已知所有答案總和為6的倍數。則本題答案為?(1)1 (2)2(3)3(4)4(5)5
10.已知若兩相異題答案相同,則題號差為質數。則本題答案為?(1)1 (2)2(3)3(4)4(5)5
解答為 5、1、1、1、2、1、1,1、2、1
因為你在IT界發問,我就用IT的方法來解決,至於高智商的人很快就能純肉體求解,我不行~
答案不是網上搜來的,我自己用python列出可能的答案組合排列,符合要件的答案有674450組,我就任選一組來驗証答案
[1, 1, 1, 5, 1, 5, 3, 4, 2, 1]
1、答案1的題目有5組
2、答案2的題目有1組
3、答案3的題目有1組
4、答案4的題目有1組
5、答案5的題目有2組
(以上皆≧1且≦5)
6、這一題的答案跟下一題差1的有1組(7跟8)
7、答案與題號的公因數大於1的有1組(第8題答案4,公因數4)
8、答案大於題號的有1組(第4題)
9、所有答案加起來為24,是6的倍數沒錯,所以本題答案為2
10、質數都是大於1,且本命題1到10之間題號相差為質數的只有2、3、5、7四個數字,符合本條件的有N組(大於1就算,因本題沒限定條件1到5個,因第1跟3差2,第3跟5差2、第3跟10差7、第4跟6題差2...),本題答案為1(排列組合的最後一個答案)
(給分才給完整原始碼,不扣掉註解跟贅餘行,才65行)
我這邊的話就暴力解
因為題目一來數列很少,二來都用簡單的數學式子配合判斷式就能解決
先用迴圈把10題的每個可能都算1次
while(a <= 5)
{
while(b <= 5)
{
....
}
}
再從最裡面的迴圈來驗證6-10題的答案
=====================================
6-10驗證方法:
假設
a = 第1題答案
b = 第2題答案
c = 第3題答案
以此類推...
而
answer為boolean
result = 應該要算出來的答案
6.請問有幾題答案和該題的下一題答案差1
=>下一題的答案和這題答案差1
result = 0
if(a = b+1 or a = b-1)
{
result = result+1;
}
if(b = c+1 or b = c-1)
{
result = result+1;
}
以此類推...
最後判斷答案是否一樣
if(result != f)
{
answer = false;
}
7.請問有幾題答案與題號有大於1的公因數
=>
第2題的公因數是2
第3題的公因數是3
第4題的公因數是2.4
第5題的公因數是5
第6題的公因數是2.3.4
第8題的公因數是2.4
第9題的公因數是3
第10題的公因數是2.4.5
result = 0
if(b == 2)
{
result = result +1
}
if(c == 3)
{
result = result +1
}
以此類推...
最後判斷答案是否一樣
if(result != g)
{
answer = false;
}
8.請問有幾題答案大於題號
=>因為答案只有1-5,所以只需要判斷1-4題
result = 0
if(a > 1)
{
result = result +1
}
if(b > 2)
{
result = result +1
}
以此類推...
最後判斷答案是否一樣
if(result != h)
{
answer = false;
}
9.已知所有答案總和為6的倍數。則本題答案為?
=>很簡單,全部加起來,之後再去判斷6的倍數
if( (a+b+c+d+e+f+g+h+i+j) % 6 != 0)
{
answer = false;
}
10.已知若兩相異題答案相同,則題號差為質數。則本題答案為?
=>如果依照題目的想法寫下去,會發現要寫很多
所以我反過來寫,不是質數的去掉
非質數的數字是1.4.6.8
所以第1題不能和(1+1)、(1+4)、(1+6)、(1+8)題的答案一樣
第2題不能和(2+1)、(2+4)、(2+6)、(2+8)題的答案一樣
...以此類推
result = 0
if(a = b or a = e or a = g or a = i)
{
answer = false;
}
if(b = c or b = f or b = h or b = j)
{
answer = false;
}
...以此類推
最後判斷答案是否一樣
if(result != j)
{
answer = false;
}
都做完了,之後剩下來的答案才是對的
if(answer = true)
{
print(a + " " + b + " " + c + " "......)
}