三進位制小數 oj132
三進位制小數
釋出時間: 2017年5月25日 19:57 最後更新: 2017年5月26日 00:44 時間限制: 1000ms 記憶體限制: 128M
你的任務呢,是將一個有理數轉換成三進位制小數。“什麼是三進位制小數呢?”你一定會問,這很明白,就是以三為基(二進位制數以2為基,而十進位制數則以10為基)的小數。
有理數的值都是在0與1之間的,每個有理數都由一個分子和一個分母表示,分子與分母之間隔著一個斜槓。有理數的個數不會超過1000個。
輸出格式見樣本輸出,它是以小數點開頭的具有10位精度的3進位制數。
複製1/3 1/4 1/6 7/8
.1000000000 .0202020202 .0111111111 .2121212122
#include <iostream> #include <cmath> using namespace std; const double n = 0.0000001; int main() { int a, b; while (~scanf("%d/%d", &a, &b)) { double num = (double)a / b; cout << "."; for (int i = 0; i < 9; i++) { num *= 3; cout<<(int)floor(num + n); num -= floor(num + n); } num *= 3; int ans = (int)floor(num + n); num -= floor(num + n); if (floor(num * 3 + n) >= 2 && ans <= 1) cout << ans + 1 << endl; else cout << ans << endl; } return 0; }
相關推薦
三進位制小數 oj132
三進位制小數 釋出時間: 2017年5月25日 19:57 最後更新: 2017年5月26日 00:44 時間限制: 1000ms 記憶體限制: 128M 描述 你的任務呢,是將一
zzuoj1081 三進位制小數
#include"stdio.h" #include"string.h" #include"stdlib.h" void solve(int p[]) { int i; if(p[10]>=
Travelling (三進位制+狀壓dp)
題目連結 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 inline ll read(){ 5 int x=0,f=1;char ch=getchar();
三 進位制、精度,Java的型別轉換
進位制的表示: 0b010 : 二進位制表示形式:前面+0n 0100 : 八進位制表示形式: 前面+0 0x001 : 16進製表示形式:前面+0x 計算機以補碼的方式進行運算 進位制的轉換: 10進位制轉換成任意進位制: 除基倒取餘,結果從按餘數下往上寫
【2018/09/15】T1-進位制拆分-平衡三進位制
題目描述 平衡三進位制,是一種以 3 為基數,-1(以下用T表示)、0、1 為基本數碼的進位制。由於 -1 的引入,這種進位制不需要額外的符號就能直接表示負數。正因為這一點,使得平衡三進位制在加減法和乘法方面的效率要比二進位制高。 美國著名計算機學家高德納在《程式設計的藝
【2018/09/15測試T1】【SOJ 1804】平衡三進位制
【題目】 題目描述: 平衡三進位制,是一種以 為基數,(以下用 T 表示)、、 為基本數碼的進位制。由於 的引入,這種進位制不需要額外的符號就能直接表示負數。正因為這一點,使得平衡三進位制在加減法和乘法方面的效率要比二進位制高。 美國著名計算機學家高德納在《程式設計
2765 :八進位制小數
總時間限制: 1000ms 記憶體限制: 65536kB 描述 八進位制小數可以用十進位制小數精確的表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 (7/8 + 5/64)。所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於3
HDU---Travelling(三進位制狀態壓縮)
題意:題意:Mr ACMer想要進行一次旅行,他決定訪問n座城市。Mr ACMer 可以從任意城市出發,必須訪問所有的城市至少一次,並且任何一個城市訪問的次數不能超過2次。n座城市間有m條道路,每條道路都有一個費用。求Mr ACMer 完成旅行需要花費的最小費用。如果不能
hdu3001(三進位制狀壓)
題目大意: 現在給你一個有n個點和m條邊的圖,每一條邊都有一個費用,每個點不能經過超過兩次,求所有點至少遍歷一次的最小費用 其中n<=10 m沒有明確限制(肯定不會超過1e5) 一看到這個資料範圍,第一想法就是狀壓QWQ 但是轉念一想,woc,每個點不一定只經過一次咯。 woc,那不就是三進位
hdu3001Travelling (狀態壓縮DP,三進位制)
Travelling Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3611 Accepted Submission
noi 八進位制小數
1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 double n2=0; 5 char n1[20]; 6 int main() 7 { 8 scanf("%s",n1
C++ printf列印二進位制,三進位制,八進位制,十六進位制等(利用itoa)
printf是格式化輸出函式,它可以直接列印十進位制,八進位制,十六進位制,輸出控制符分別為%d, %o, %x, 但是它不存在二進位制,如果輸出二進位制可以呼叫stdlib.h裡面的itoa函式。
天平秤重問題(三進位制)
[問題描述]: 有一隻天平和N只砝碼,如何設計這N只砝碼,才能使這天平能夠連續秤出的重量最大?假設砝碼的最小單位為1克,秤物時物品放在天平的左邊,砝碼可以放在右邊也可以放在左邊,不管放在哪一邊只要天平能夠平衡就行,物品的重量應是右邊砝碼總重量減去左邊砝碼的重量。 輸入一個
巧用三進位制解決天平稱重問題
1.問題描述: 用天平稱重時,我們希望用盡可能少的砝碼組合稱出儘可能多的重量。 如果有無限個砝碼,但它們的重量分別是1,3,9,27,81,……等3的指數冪 神奇之處在於用它們的組合可以稱出任意整數重量(砝碼允許放在左右兩個盤中)。 本題目要求程式設計實現:對使用者給
Barbells(三進位制)
題意:給你一串b數字。一串p。左右槓鈴需要相等 然後記錄加過重量的槓鈴的重量。如題中所示。 然後對於一個p 可以加左邊 可以加右邊 或者不加三種情況。所以可以用三進位制來表示。 #include<bits/stdc++.h> using namespace s
n進位制小數 將任意十進位制正小數分別轉換成2,3,4,5,6,7,8,9進位制正小數,小數點後保留8位,並輸出。
/* n進位制小數 將任意十進位制正小數分別轉換成2,3,4,5,6,7,8,9進位制正小數,小數點後保留8位,並輸出。 例如:若十進位制小數為0.795,則輸出: 十進位制正小數 0.7950
POJ NOI0113-03 八進位制小數(Bailian2765)
總時間限制:1000ms記憶體限制: 65536kB描述 八進位制有限小數均可以用十進位制有限小數精確地表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 (7/8 + 5/64)。所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於3n
三進位制與兩道趣味數學題
現在我們普遍使用十進位制進行數學運算,另一種常使用的進位制是二進位制,在計算機運算之中。日常生活中好像沒有三進位制的立足之處。1個季度是3個月,應是三進位制。交通訊號的紅綠黃的三種狀態可以表示0、1、2來描述,這似乎與三進位制沾上了邊,可是最近紅綠黃燈多變成了紅綠燈,三進制
小數的進位制轉換
八進位制有限小數均可以用十進位制有限小數精確地表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 (7/8 + 5/64)。所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於3n的十進位制小數。你的任務是寫一個程式,把(0,1)之間的八進位制小數轉化成十進位制小數。 Inp
進位制轉換(十進位制轉K進位制,K進位制轉十進位制,整數、小數)
#include <iostream> #include <cstdio> using namespace std; int main() { int k,number;int