WOJ1319-数制转换
来源:互联网 发布:阿里云ecs建站教程 编辑:程序博客网 时间:2024/06/06 02:16
有一种数制的基数是三,权值可以取-1,0,1,并且分别用符号-,0,1表示。这种数值的101便表示十进制的10,即1×3^2 + 0×3^1 + 1×3^0 = 10,又如这种数制的-0表示十进制的-3,即 -1×3^1 + 0×3^0 = -3。要求把给定的有符号整数转换为新数制的数,该数的前面不能有多余的0,例如10的新数制表示是101,则不要输出乘0101。
输入格式
数据第一行的数字T表示输入数据有T组,接下来的T行每行有一个整数N(32位整型可表示范围内),整数内不会有其他分隔符。
输出格式
对输入的每一个数字输出一行,该行是输入行整数的新数制表示。
样例输入
210-3
样例输出
101-0
#include<stdio.h>#include<string.h>char buf[128];int length;int main(){ int n,T; scanf("%d",&T); while(T--){ scanf("%d",&n); length=126; if(n==0) buf[length--]='0'; buf[127]='\0'; while(n!=0){ if(n>0) switch(n%3){ case 0: buf[length--]='0'; n=n/3; break; case 1: buf[length--]='1'; n=(n-1)/3; break; case 2: buf[length--]='-'; n=(n+1)/3; break; } else switch(-n%3){ case 0: buf[length--]='0'; n=n/3; break; case 1: buf[length--]='-'; n=(n+1)/3; break; case 2: buf[length--]='1'; n=(n-1)/3; break; } } puts(buf+length+1); } return 0;}
阅读全文
0 0
- WOJ1319-数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 数制转换
- 问题
- EXT2文件系统实现原理
- 《编程之美》中的阶乘问题小结
- (odps)maxcompute 日志操作学习
- Win10中发布MVC项目
- WOJ1319-数制转换
- 简单使用
- 1308:数列求和
- 多表查询
- BugFree3.0.4Linux环境安装指南
- WOJ1328-WERTYU
- 浅析Oracle PL/SQL 学习--未完待续
- 1799 Yeehaa!
- 红米note4x在Android Studio 无法安装应用