26进制(A到Z表示1到26,例27:AA,2019:BYQ)

本文介绍了使用Java和C++实现的26进制转换算法,详细解释了如何将十进制数转换为由A到Z表示的26进制数,提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

26进制(A到Z表示1到26,例27:AA,2019:BYQ)
解析:n-1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
A B C D E F G H I J K L M N O P Q R S T

20 21 22 23 24 25
U P W X Y Z

java代码如下:

import java.util.Scanner;
public class Demo {	
public static int solve(int n, int r,char c[]){
	   int i=-1;
		while (n > 0){
			i++;
			int t = n%r;
			n = (n - 1) / r;        //不是26进制
			if (t == 0)
				t = 26;
		c[i]= (char)('A' + t - 1);//java中强制转化;
		}
		return i;
	}
	public static void main(String[] agrs) {
	 Scanner input=new Scanner(System.in);
       int n=input.nextInt();
       char [] c=new  char[100];
			int m = solve(n, 26,c);
			for (int i =m; i>=0; i--)
				System.out.print(c[i]);


	}

}

》》》》》》》》》》
C++语言代码如下:

#include <cstdio>

#include <iostream>

using namespace std;   ///作用:命名空间

string solve(int n, int r)
{
	string ret;
	
     while (n > 0){
		
              int t = n%r;
		
              n = (n - 1) / r;        //不是26进制
		             if (t == 0)
	
 	     t = 26;
	
             ret += 'A' + t - 1;
	
              }
	
             return ret;
   
}

int main()

{
	
       int n;
	
       scanf_s("%d", &n);

       string ans = solve(n, 26);

        for (int i = ans.length() - 1; i >= 0; i--)
		        printf("%c", ans[i]);

	
        return 0;

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值