首页 > 试题广场 >

小乐乐与进制转换

[编程题]小乐乐与进制转换
  • 热度指数:27015 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。


输入描述:

输入一个正整数n  (1 ≤ n ≤ 109)



输出描述:
输出一行,为正整数n表示为六进制的结果
示例1

输入

6

输出

10
示例2

输入

120

输出

320
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            System.out.println(Integer.toString(sc.nextInt(), 6));
        }
    }
}


发表于 2020-10-07 15:44:28 回复(0)
#include<stdio.h>
int main()
{
    long long n , result , remainder[20] , i=0;
    scanf("%lld",&n);
    while(n != 0)
    {
        result = n / 6;
        remainder[i] = n % 6;
        i++;
        n = result;
    }
    for(int j = i - 1 ; j >= 0 ; j--) printf("%lld",remainder[j]);
    return 0;
}

发表于 2022-06-16 10:46:00 回复(0)
#include<bits/stdc++.h>
using namespace std;

char c[40];

int main() {
    int n;
    cin >> n;
    int r = 0;
    while(n) {
        c[r] = n%6+'0';
        r++;
        n /= 6;
    }
    c[r] = '\0';
    string ans(c);
    reverse(ans.begin(),ans.end());
    cout << ans;
    return 0;
}

发表于 2020-07-31 16:11:50 回复(0)

                          JavaScript

var num = readline()
num = parseInt(num)
console.log(num.toString(6))


发表于 2020-06-23 09:12:17 回复(0)
       java中的 StringBuffer 和 StringBuilder 类:当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类,和String类不同的是,这两个类的对象能够被多次修改,并且不产生新的未使用对象。
       在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer
       StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
       由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

       将一个十进制数(默认十进制数)转换成其他任意进制数的一个通用方法就是“除取余”,不停的除以基数,取余数,直到商为0,然后将每次得到的余数倒序输出,即为该十进制数对应的某进制数。
import java.util.Scanner ;
public class Main{
    public static void main(String[] args){
        
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        StringBuilder r = new StringBuilder();
        while(n>0){
            r.append( n%6 );
            n /= 6 ;
        }
        System.out.println( r.reverse());
        
    }
}

       还可以用 Integer.toString( int  a ,int  b) :a表示要转成字符串的数字,b表示要转成的进制。
例如:Integer.toString( 14,8) —>  把14转成8进制表示的字符串
编辑于 2021-03-01 17:51:05 回复(1)
#include <stdio.h>
int main()
{
    int n,i=0,a[100];
    scanf("%d", &n);
    while(n >=6)
    {
    a[i] = n%6;
    a[i+1] = n/6;
    n /= 6;
    
    i++;
    }
    for (int j=i;j>=0;j--)
    {
    printf("%d",a[j]);
    }
   
}

发表于 2021-01-13 12:31:29 回复(0)
void modSix(int n)
{
    if(n){
        modSix(n / 6);
        printf("%d", n % 6);
    }
}

int main()
{
    
    int n = 0;
    scanf("%d",&n);
    modSix(n);
    return 0;
}

发表于 2021-07-30 09:13:44 回复(0)
#include <stdio.h>
int main()
{
    int a[35][35],b[15][15];
    int i,j,n,m,flag=1,k;
    scanf("%d",&n);
    int c[1005];
    int t=0;
    while(n){
        c[t++]=n%6;
        n/=6;
    }
    for(i=t-1;i>=0;i--){
        if(i==0) printf("%d\n",c[i]);
        else printf("%d",c[i]);
    }
}

发表于 2020-04-10 19:18:52 回复(0)
#include <stdio.h>

int main() {
    int n=0;
    int i=0;
    int arr[40]={0};
    scanf("%d",&n);
    while(n){
        arr[i]=n%6;
        i++;
        n/=6;
    }
    for(i--;i>=0;i--){
        printf("%d",arr[i]);
    }
    return 0;
}

编辑于 2024-02-03 17:07:54 回复(0)
#include <stdio.h>
void transfer(int num){
    if(num != 0){
        transfer(num / 6);
        printf("%d",num % 6);
    }
}
int main(){
    int num;
    scanf("%d",&num);
    transfer(num);
    return 0;
}

发表于 2022-08-16 14:14:32 回复(0)
#include<stdio.h>
void jz(int x)
{
    if(x!=0)
    {
        jz(x/6);
        printf("%d",x%6);
    }
    
}
int main()
{
    int a=0;
    scanf("%d",&a);
    jz(a);
}


发表于 2022-07-28 17:09:35 回复(0)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int res = 0, k = 1;
    vector<int> a;
    while (n)
    {
        a.push_back(n % 6);
        n /= 6;
    }
    reverse(a.begin(), a.end());
    for (auto i :a)
        cout << i;
}

发表于 2022-02-26 14:22:42 回复(0)
#include<stdio.h>
int main()
{
    int n,i=0,j;
    scanf("%d",&n);
    int arr[100];
    while(n/6!=0)
    {
        arr[i]=n%6;
        n=n/6;
        i++;
    }
    arr[i]=n;
    for(j=i;j>=0;j--)
        printf("%d",arr[j]);
    return 0;
}

发表于 2021-04-08 18:31:52 回复(0)
int main() {
	int a = 0;
	int i = 0;
	int arr[10] = {0};
	scanf("%d", &a);
	while (a != 0)       //,循环的条件是这个数被除尽为止,即本数为零
	{
		arr[i] = a % 6;  //短除法将一个数除以六取余,将余数放在数组中
		a = (a / 6);
		i++;
	}
	for (int j = i-1; j >= 0; j--) //因为短除法倒着取余,所以循环倒着打印每一位
	{
		printf("%d", arr[j]);
	}
	return 0;
}

发表于 2024-10-30 15:47:01 回复(0)
!!!有无大佬帮看看!!!!,VS(2022)上就可以,到这就不好使了
#include <stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#define JZ 6
int o(int x) //算最大次方位
{
    while (1)
    {
        int n = rand() % 20;
        if (pow(JZ, n + 1) > x && pow(JZ, n) <= x)
        {
            return n;
        }
    }

}
int p(int o, int x)//算最大次方位,填几
{
    while (1)
    {
        int n = rand() % 10;
        if (pow(JZ, o) * (n + 1) > x && pow(JZ, o) * (n) <= x && n!=0)
        {
            return n;
        }
    }
}
int main()
{
    srand((unsigned int)time(NULL));
    int n = 0;
    int a, b;
    
    int i = 0;
    scanf("%d", &n);
    int c = o(n);
    int arr[] = { 0 };
    for (i = 0; i <= c; i++)
    {
        arr[i] = 0;
    }
    while (n)
    {
        a = o(n);
        
        //printf("%d ", a);
        b = p(a, n);
       // printf("%d\n", b);
        arr[a] = b;          //数组 存放a这个次方位的值
        n = n - b * pow(JZ, a);
    }
   
    for (i = c; i >= 0; i--)
    {
        printf("%d", arr[i]);
    }
    return 0;
}

发表于 2024-07-30 10:54:17 回复(1)
#include <stdio.h>

int main() {
    char a[15];
    int i = 0;
    int n = 0;
    scanf("%d", &n);
    int Hexadecimal = 6;  
    while (n) {
        //余数存放到字符串中,在从后向前打印字符串
        *(a + i) = n % Hexadecimal;
        n /= Hexadecimal;
        i++;
    }
    //打印余数组成的字符串,但字符串是反过来的,因为要打印为0的位置i可以为0
    while (i-- && i >= 0) {
        printf("%d", *(a+i));
    }
    return 0;
}

发表于 2024-06-19 01:36:07 回复(0)
语法格式:list.insert(index, element)
a = int(input())
b = []
while a !=0:
    b.insert(0,a%6)
    a = a//6
for i in b:
    print(i,end="")


编辑于 2024-02-04 12:45:04 回复(0)
#include <stdio.h>
//思路是将取6的余依次放在一个数组中,然后逆序输出
int main() 
{
    int n,a[20],i=0,j;
    scanf("%d", &n);
    while(n !=0)
    {
        a[i] = n%6;
        n /= 6;
        i++;
    }
    for(j = i-1;j >= 0;j--)
    {
        printf("%d", a[j]);
    }
    return 0;
}
发表于 2023-04-02 10:43:11 回复(0)
#include <stdio.h>

int main() {
    long n, arr[10], i = 0, sum = 0;
    while (scanf("%ld", &n) != EOF) {
        while (n) {
            arr[i] = n % 6;
            n /= 6;
            i++;
        }

        for (int j = i - 1; j >= 0; j--) {
            printf("%ld", arr[j]);
        }
    }
    return 0;
}
发表于 2023-02-27 15:40:35 回复(0)
n = int(input())
r = []
while n > 0:
    tmp = n%6
    n = n//6
    r.insert(0,tmp)
for x in r: print(x,end='')

发表于 2022-07-15 17:11:44 回复(0)