題目1138:進位制轉換 (大資料10進位制到2進位制)
- 題目描述:
-
將一個長度最多為30位數字的十進位制非負整數轉換為二進位制數輸出。
- 輸入:
-
多組資料,每行為一個長度不超過30位的十進位制非負整數。
(注意是10進位制數字的個數可能有30個,而非30bits的整數)
- 輸出:
-
每行輸出對應的二進位制數。
- 樣例輸入:
-
0 1 3 8
- 樣例輸出:
-
0 1 11 1000
//思路:
十進位制數位數超過30位,數太大。用字元陣列來存放。轉換為二進位制時,每一次陣列最後一位取餘存入新陣列,然後十進位制數從第一位開始,判斷當前是奇數還是偶數,奇數則下一位的進位位位10,偶數則為0,然後加上前一次求得的進位位(一開始設為0)再除以二,。
相當於連續除以二求餘
思路稍微有點繞,java有直接轉化為二進位制的演算法真是太爽了。
#include <stdio.h>
int main(){ char n[40], buf[200]; int num[40], len, i, len_str, c, tmp, j; while (scanf("%s", n) != EOF){ for (len = 0; n[len]; len++){ num[len] = n[len] - '0'; } i = 0, len_str = 0; while (i < len){ buf[len_str++] = num[len - 1] % 2 + '0'; c = 0; for (j = i; j < len; j++){ tmp = num[j]; num[j] = (num[j] + c) / 2; if (tmp & 1){//二進位制位與運算,判斷tmp是否為奇數 c = 10; } else c = 0; } if (num[i] == 0) i++; } for (int j = len_str - 1; j >= 0; j--){ printf("%c", buf[j]); } printf("\n"); } return 0; }
相關推薦
題目1138:進位制轉換 (大資料10進位制到2進位制)
題目描述: 將一個長度最多為30位數字的十進位制非負整數轉換為二進位制數輸出。 輸入: 多組資料,每行為一個長度不超過30位的十進位制非負整數。 (注意是10進位制數字的個數可能有30個,而非30bits的整數) 輸出: 每行輸出對應的二進位制數。 樣例輸入: 0
大資料開發面試部分:對yarn的理解(大資料開發面試)
YARN是Hadoop2.0版本引進的資源管理系統,直接從MR1演化而來。 核心思想:將MR1中的JobTracker的資源管理和作業排程兩個功能分開,分別由ResourceManager和ApplicationMaster程序實現。 ResourceManager:負
Dask快速搭建分散式叢集(大資料0基礎可以理解,並使用!)
轉載: https://blog.csdn.net/a19990412/article/details/79510219常開心,解決了很久都沒有解決的問題使用的語言: Python3.5 分散式機器: windows7注意到,其實,通過這工具搭建分散式不需要管使用的電腦是什
機器學習——2(大資料金融風控的預測案例學習總結)
大資料金融風控的預測案例 1)資料準備 a)離群點處理 總體上先對資料進行了解,做一些簡單統計,對連續性數值與字元型數值的處理; 離群點的處理: 首先,離群點的定義:是與其他大多數樣本的行為或特徵分佈不一致的那些點; 處理方式:方法1—首先統計每個樣
九度-題目1138:進制轉換
i++ 十進制 ring str 進制數 ble for 進制 進制轉換 http://ac.jobdu.com/problem.php?pid=1138 題目描述: 將一個長度最多為30位數字的十進制非負整數轉換為二進制數輸出。 輸入: 多組數據,每行為一個長度不超過
藍橋杯:進位制轉換(java)
package lanqiaobei; import java.util.HashMap; import java.util.Scanner; import java.util.Stack; /* 練習題:進位制轉換 輸入一個十進位制數 N,將它轉換成 R 進位制數輸出。在 10≤R≤16的情況
資料結構實驗之棧與佇列一:進位制轉換(SDUT 2131)
題目連結 題解: 特判一下n==0的時候。 #include <bits/stdc++.h> using namespace std; int a[1000]; int main() {
資料結構實驗之棧一:進位制轉換(java實現)
資料結構實驗之棧一:進位制轉換 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 輸入一個十進位制整數,將其轉換成對應
2~62位任意進制轉換(c++)
rtmp end iostream 思路 [0 代碼 () objc blog 進制轉換的符號表為[0-9a-zA-Z],共61個字符,最大可表示62進制。 思路是原進制先轉換為10進制,再轉換到目標進制。 疑問: 對於負數,有小夥伴說可以直接將符號丟棄,按照整數
進位制轉換(c語言)
#include <stdio.h> #include <stdlib.h> void change(int n) { if (n == 0) return; else { // change(n / 8);
1010 Radix - 進位制轉換(有坑)
思路: 這題有坑啊 (1)z表示36並不意味著只到36進位制,最小2進位制,最大進位制=另一個數的值 (2)可能會超時,用二分 (3)用long long!在二分過程中會溢位,所以要特判,當溢位時說明書過大,right=mid-1 程式碼如下: #include<ios
任意進位制轉換(佇列實現儲存和輸出)
#include <stdio.h> #include <stdlib.h> #define maxsize 1000000 **//定義佇列** typedef struct { char c[maxsize]; int top; }seqstack
各種進位制轉換(二,八,十,十六進位制間轉換)詳解附程式碼
進位制轉換 原理 進位制轉換是人們利用符號來計數的方法。進位制轉換由一組數碼符號和兩個基本因素“基數”與“位權”構成。 基數是指,進位計數制中所採用的數碼(數制中用來表示“量”的符號)的個數。 位權是指,進位制中每一固定位置對應
ZZULIOJ.1112: 進位制轉換(函式專題)
1112: 進位制轉換(函式專題) 題目描述 輸入一個十進位制整數n,輸出對應的二進位制整數。常用的轉換方法為“除2取餘,倒序排列”。將一個十進位制數除以2,得到餘數和商,將得到的商再除以2,依次類推,直到商等於0為止,倒取除得的餘數,即為所求的二進位制數。例如,把52換算成二進位制
演算法筆記 — 進位制轉換(大數運算-十進位制轉二進位制)
題目連結:http://www.codeup.cn/problem.php?cid=100000579&pid=2 題目描述 將一個長度最多為30位數字的十進位制非負整數轉換為二進位制數輸出。 輸入 多組資料,每行為一個長度不超過30位的十進位制非負整數
P1017 進位制轉換 (負進位制轉換)
和平常的轉化差不多 加多一步 如果餘數 < 0, 那麼餘數減去除數(此時除數是負),商數加1 #include<cstdio> #define _for(i, a, b) fo
鏈棧實現進位制轉換(2-16)
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include <math.h> #de
進位制轉換(十進位制轉K進位制,K進位制轉十進位制,整數、小數)
#include <iostream> #include <cstdio> using namespace std; int main() { int k,number;int
中石油新生第三次訓練賽 C題進位制轉換(奇葩解)
題目描述 樂樂正在學進位制轉換,但他老是搞不清楚到底自己是否做對,請你編一程式實現兩種不同進位制之間的資料轉換,幫他檢驗。 輸入 共有三行,第一行是一個正整數,表示需要轉換的數的進位制n(2≤n≤16),第二行是一個n進位制數,若n>10則用大寫字母A~F表示數碼10~15
hdu2013進位制轉換解題報告---資料結構(棧)
進位制轉換 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm