POJ-3191(负进制)
来源:互联网 发布:mac远程桌面win10 编辑:程序博客网 时间:2024/05/29 14:27
负数进制和正数进制类似。对于负数进制,每次取的余数保证在0~-m-1之间。(例如m=-16,则余数应该在0~15)就可以直接输出。 所以用系统的“mod”运算符的时候必须注意检查是不是在该范围(可能在m+1~0),否则就调整。调整的方法是:
if 余数<0 then
begin
余数=余数-m;
商=商+1;
end;
#include <iostream>#include <cstdio>using namespace std;const int maxn = 1000;int bit[maxn];int main(){ int n; while(cin >> n) { int len = 0; while(n) { int r = n % -2; int c = n / -2; if(r < 0) { c++; r += 2; } n = c; bit[len++] = r; } for(int i = len-1; i >= 0; i--) { printf("%d",bit[i]); } if(len == 0) printf("0"); } return 0;}
说一点负数取余的知识
取余的函数定义 a%b = a - (a/b)*b
所以例如-7%5 = -7 - (-1)*5 = -2
比如:
21 % 6 = 3;21 % 7 = 0;
-21 % -8 = -5;
21 % -5 = 1;
21 / 6 = 3;
21 / 7 = 3;
-21 / -8 = 2;
21 / -5 = -4
余数符号与被除数符号一致
1 0
- POJ-3191(负进制)
- POJ-3191(负进制那点事儿)
- POJ 3191
- poj 1061 + poj 2115 + poj 2142 (exgcd)
- 小比赛(POJ 2992,UVALive 4108,POJ 2263,POJ 3617,HDU 5305,POJ 1988,POJ 1679,POJ 3481)
- 树状数组(poj 1195,poj 3321)
- poj 1129 (类似poj 1419)
- poj poj 3126 Prime Path(BFS)
- poj 3074/poj 3076(精确覆盖)
- poj 3264 & poj 3468(线段树)
- POJ 大数篇(POJ+百炼)
- 扩展欧几里得(poj 2115 poj 1061)
- (POJ 1003)Hangover
- POJ数学(ZZ)
- poj 3041(匈牙利)
- poj 1160(dp)
- poj 3273 (二分)
- poj 1681(高斯消元。。。)
- 吐血整合! Ubuntu 14.04+cuda8.0+opencv3.1+matlab2015b+caffe
- Linux下安装tensorflow库
- JAVA中几种常用的RPC框架介绍
- 五种常见设计模式
- javascript深入学习-DOM取参绑定事件-按钮计算器
- POJ-3191(负进制)
- Linux内核源码分析方法
- Javascript基础(三)之运算符、函数
- javascript 基础 导航高亮
- 连续出现的字符
- rabbit集群
- HDU 1698 Just a Hook (线段树区间更新)
- ThinkPHP 学习笔记 3-4.输出和模型使用
- Android输入框实现简单的抖动效果