给定一个数,如何用平衡三进制表示,就像5= 9-3-1?
有时候,觉得平衡三进制很有用处,既有加法,也有减法。
#include <iostream> using namespace std; void transform_ternary3 (int num){ int m = 0; vector<int> seri; if (!num){ cout << 0 <<endl; return; } int flag = 1; if (num <0){ num = -num; flag = -1; } int s= 1; int t = 1; int n = 0; while(num){ m = num % 3; if (m == 2){ num = num + 1; m = -1; } t = m * s * flag; if (t >0){ if (!n) cout <<t; else cout <<"+"<<t; n=1; } else if (t <0){ cout << t; n = 1; } num = num / 3; s *=3; } cout << endl; } int main(){ int num ; for ( int i = 0 ;i < 20;i++){ cout << i <<"= "; transform_ternary3(i); cout <<-i <<"= "; transform_ternary3(-i); } system("pause()"); }