codeforces 13a(进制转换)

来源:互联网 发布:武汉软件行业区域 编辑:程序博客网 时间:2024/05/21 10:21

通过这道题引入一下十进制转化为任意进制数的模板。

题解:

#include <iostream>using namespace std;int gcd(int a,int b){return b==0 ? a : gcd(b,a%b);}int main() {    int n;    int p,c;int s[100];    int sum=0,count=0;    int i,j;    cin>>n;    int x,y;for(i=2;i<n;i++){x=n;p=i;while (x!=0) {        c=x%p;        x=x/p;        s[count++]=c;    }    for(j=0;j<count;j++){    sum+=s[j];}    count=0;}y=gcd(sum,n-2);cout<<sum/y<<"/"<<(n-2)/y<<endl;    return 0;}



模板:

#include <iostream>using namespace std;int main() {    int n,p;    int dig,count=0;    int s[100];    cin>>n;   //要转化的数字     cin>>p;   //要转换的进制 //数制转换    while (n!=0) {        dig=n%p;        n=n/p;        s[count++]=dig;    }//输出转换后的序列    for(int k=count-1; k>=0; k--) {        if(s[k]>=10)             cout<<(char)(s[k]+55);        else             cout<<s[k];    }    return 0;}


原创粉丝点击