這是我的程式
#include <stdio.h>
#include <math.h>
int main() {
int times, D, I, num, final;
scanf("%d", ×);
for (int i = 0;i < times;i++) {
num = 0;
scanf("%d%d", &D, &I);
for (int j = D - 2;j >= 0;j--) {
if (I % 2 == 1) {
I = (I + 1) / 2;
}
else {
I /= 2;
num += pow(2, j);
}
}
final = num + pow(2, D - 1);
printf("%d\n", final);
}
return 0;
}
在自己的VS跟測試執行都沒問題,但到了實際測資會RE(SIGKILL),不知道為什麼,希望有人可以幫我解答
我換一種寫法就解開了,所以我不用幫助了,但還是感謝有幫我看的人。
以下是我改良後的解法:
#include <stdio.h> int main() { int times, D, I, num; scanf("%d", ×); for (int i = 0;i < times;i++) { scanf("%d%d", &D, &I); num = 0; for (int j = D - 2;j >= 0;j -= 1) { if (I % 2 == 1) { I = (I + 1) / 2; } else { I /= 2; num += 1 << j; } } printf("%d\n", (num + (1 << D - 1))); } }