UVA - 11121 Base -2 进制数

来源:互联网 发布:淘宝客服评价回复话术 编辑:程序博客网 时间:2024/06/05 15:03

题目大意:给你一个数N,要求你求出这个数的-2进制表达数

解题思路:仿照二进制的求法来求,那就是不断的%(-2),和/(-2),但是%(-2)的话,会出现-1的情况,这时候就把除得的商+1,就可以了

具体详解请看点击打开链接

#include<cstdio>#include<cstring>int main() {int test , N, mark = 1;int ans[100];scanf("%d",&test);while(test--) {scanf("%d",&N);int c = - 1;ans[0] = 0;while(N) {ans[++c] = N % (-2);N = N / (-2);if(ans[c] == -1) {ans[c] = -ans[c];N++;}}printf("Case #%d: ",mark++);while(c > 0) printf("%d",ans[c--]);printf("%d",ans[0]);printf("\n");}return 0;}


0 0
原创粉丝点击