zoukankan      html  css  js  c++  java
  • 思维题+分数的进制转换——ICPC GNYR 2019 J

    /*
    给定 base = p/q,找到一个数组a[],每个元素的范围是[0-9A-Za-z],就是[0,61] 
    使 n = a[k]*base^k + a[k-1]*base^(k-1) + ... + a[1]*base + a[0]  
    本质上是进制转换:将十进制数n转换成base进制
    因为a[]数组的每个元素都是整数,所以在模运算时先除p,再乘q(想想为什么要先除再乘)
    倒取余数法做一下就行 
    */
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long 
    
    ll n,p,q,a[1005],tot;
    
    int main(){
        cin>>p>>q>>n;
        while(n){
            a[++tot]=n%p;
            n/=p;n*=q;
        }
        for(int i=tot;i>=1;i--){
            if(a[i]<=9)cout<<a[i];
            else if(a[i]>=10 && a[i]<=35)cout<<(char)(a[i]-10+'A');
            else cout<<(char)(a[i]-36+'a');
        }
        puts("");
    }
     
  • 相关阅读:
    idea自定义servlet模板
    jsp基础-指令,内置对象,动作,EL表达式,JSTL技术
    cookie和session
    HttpServletRequest
    IO字符流
    IO字节流
    递归
    File 类
    JDBC数据库连接
    Map接口
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12775890.html
Copyright © 2011-2022 走看看