zoukankan      html  css  js  c++  java
  • NOIP2000TG T1 进制转换

    题目链接

    题意:

    求$n$的$r$进制表示法$(r<0)$。

    程序1(60pt):

    若$r>0$,每次用$r$除$n$,记录余数,用商替换$n$,最后倒序输出余数。

    然而这里$r<0$,直接整除可能会出现负的余数,然而没有负的数码,所以我们有

    $n=lfloorfrac{n}{d} floor*d+r=(lfloorfrac{n}{d} floor+1)*d+(r-d)$

    于是出现负余数时候,除数$++$,余数减除数就可以了。

    然而$r<-10$时,十个基础数码不够用了,于是$60pt$。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    const int N=16;
    
        int n,r,s[N+3];
    
    int main(){
        scanf("%d%d",&n,&r);
        int nn=n;
    
        int p=0,a,b;
        while(n!=0){
            p++;
            
            a=n/r;    b=n%r;
            if(b<0){
                a++;
                b=n-a*r;
                
            }
            
            n=a;
            s[p]=b;
            
        }
        
        printf("%d=",nn);
        for(int i=p;i>=1;i--)
            printf("%d",s[i]);
        printf("(base%d)",r);
        
        return 0;
        
    }

     程序2(100pt):

    修改一下输出部分。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    const int N=16;
    
        int n,r,s[N+3];
    
    int main(){
        scanf("%d%d",&n,&r);
        int nn=n;
    
        int p=0,a,b;
        while(n!=0){
            p++;
            
            a=n/r;    b=n%r;
            if(b<0){
                a++;
                b=n-a*r;
                
            }
            
            n=a;
            s[p]=b;
            
        }
        
        printf("%d=",nn);
        for(int i=p;i>=1;i--)
        if(s[i]<10)
            printf("%d",s[i]);
        else 
            putchar(s[i]-10+'A');
        printf("(base%d)",r);
        
        return 0;
        
    }

    小结:

    三思而后交代码。勿得意忘形。

  • 相关阅读:
    springcloud-Ribbon之手写轮询算法
    springcloud-Ribbon负载均衡规则的替换
    git本地库和远程库的连接和断开
    本地项目第一次提交到码云或github
    python基础语法练习
    Xss-labs-level11-15
    Vulnhub-靶机-ESCALATE_LINUX: 1
    Xss-labs-level7-10
    Vulnhub-靶机-DC: 6
    Jenkins入门之执行Powershell脚本
  • 原文地址:https://www.cnblogs.com/Hansue/p/10952164.html
Copyright © 2011-2022 走看看