給你乙個整數n,是否有它的排列可以被8整除?
例如,如果數字n = 123,則是可能的排列。
其中312可以被8整數,所以應該輸出yes。
第一行輸入乙個整數t,表示有t組資料。
接下來t行,每行輸入乙個整數n。
1 <= t <= 45
0 <= n <= 10^110
對於每一組資料,如果其排列有一組可以被8整除,則輸出yes,否則輸出no
2 61
75yes
no第一組資料:16是61的一組排列且可以整數8,所以輸出yes。
第二組資料:75的兩個排列57和75都不能整除8,所以輸出no。
要注意1000/8=125 也就是說只用考慮後三位就可以的
當然這也不容易
先放乙個純暴力全排列做法
#include
#include
#include
using
namespace
std;
int main()
if (sum%8==0)
}while (next_permutation(st,st+len));
if (flag) puts("yes");
else
puts("no");
}return
0;}
最大時間複雜度106
簡單暴力
#include
#include
#include
#include
#include
#include
using namespace std;
int main()else
if (len == 2)}}
if (flag) break;
}}else }}
if (flag) break;
}if (flag) break;}}
if (flag) puts("yes");
else puts("no");
}return
0;}
全排列函式
一 next permutation 函式,作用是輸出所有比當前排列 排列大的排列 順序為由小到大排 include include includeusing namespace std int main string str cin str while next permutation str.b...
全排列函式
人類終於登上了火星的土地並且見到了神秘的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把乙個非常大的數字告訴人類科學家,科學家破解這個數字的含義後,再把乙個很小的數字加到這個大數上面,把結果告訴火星人,作為人類的回答。火星人用...
全排列函式
nest permutation函式 向下求 include include 標頭檔案 using namespace std intmain dowhile next permutation a,a 3 這是乙個求乙個排序的下乙個排列的函式 return0 執行結果 123 1322 1323 1...