思维题+分数的进制转换——ICPC GNYR 2019 J
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了思维题+分数的进制转换——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(""); }
以上是关于思维题+分数的进制转换——ICPC GNYR 2019 J的主要内容,如果未能解决你的问题,请参考以下文章
2019上海icpc网络赛B. Light bulbs(思维+差分)
2020年2月2日 ICPC2019徐州 现场赛C <3 numbers 思维题
ZOJ 4060 - Flippy Sequence - [思维题][2018 ACM-ICPC Asia Qingdao Regional Problem C]