Wrong Answer

seokma97 Reply 9 years 32 weeks ago
#include <stdio.h> void bit_convert(int num, int *arr){ int koe,index=0; while (1){ koe = num % 2; arr[index++] = koe; num /= 2; if (num==0) break; } while (index < 32) arr[index++]=0; } int main() { int x,y,p,n; int a[32],b[32]; scanf("%d\n%d\n%d\n%d",&x,&y,&p,&n); //printf("%d %d %d %d\n",x,y,p,n); bit_convert(x,a); bit_convert(y,b); for (int i=31; i>(31-n); i--) { a[p]=b[i]; p++; } for (int i=0;i<32;i++) printf("%d",a[i]); return 0; } 음수도 고려해야 하나요?
pichulia Reply 9 years 31 weeks ago
y 비트를 x로 옮기는 방식이 잘못됐습니다. 예를 들어 대충 8bit라고 치고 x = 00000000 y = 00011011 이랬을 때, n=4, p=0이라면 정답은 11010000 이 아니라 10110000 이 되어야합니다.
seokma97 Reply 9 years 31 weeks ago
감사합니다^^.