所应用知识点:(1)栈。(2)函数定义
题目:输入一个十进制数n,输出n的二进制,八进制和十六进制。每次输出占一行。
#include#include using namespace std; typedef long long ll; char a[20] = "0123456789ABCDEF"; ll c[5] = {2,8,16}; stack s; ll k (ll n , ll b){ ll j , f = 0; if(n == 0){ cout << "0" << endl; return 0; } if (n < 0){ n = -n; f = 1; } while (n) { j = n % b; s.push( a[j] ); n /= b; } if(f == 1)cout << "-"; while(! s.empty() ){ cout << s.top(); s.pop(); } cout << endl; return 0; } int main () { ll n , i; cin >> n; for(ll i = 0 ; i < 3 ; i ++){ k(n , c[i]); } return 0; }
注:(1)n为0和负数的情况。
(2)ll型的函数有返回值莫要忘了写(俺因为这个东西wa了一发)。



