• 蓝桥杯进制转换的一题……


      算法提高 P0102  
    时间限制:1.0s   内存限制:256.0MB
        
      用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出,十六进制表示成3位,八进制表示成4位,若不够前面补0。(不考虑输入不合法的情况)
    输入
      1D5
    输出
    (注意冒号后面有一个空格)
      Hex: 0x1D5
      Decimal: 469
      Octal: 0725

    这题的16进制输出……神经病啊= =

    #include<bits/stdc++.h>
    using namespace std;
    
    void Arbitrary_change(int n,int m){
    	char s[100];
    	int i;
    	
    	for(i=0;n>0;i++){
    		if(n%m<10){
    			s[i] = n%m+'0';
    		}else{
    			s[i] = n%m-10+'A';
    		}
    		n/=m; 
    	}
    	
    	if(m == 8){
    		printf("Octal: "); 
    		int temp = i;
    		while(temp++<4){
    			printf("0");
    		} 
    	}
    	else if(m == 16){
    		printf("Hex: 0x");
    		int temp = i;
    		while(temp++<3){
    			printf("0");
    		} 
    	}
    	for(n=i;n>0;n--)
    		printf("%c",s[n-1]);
    	printf("
    ");
    }
    
    int Ten_change(int n,string str){
        int ans = 0, sum = 1;
        for(int i = str.length(); i > 0; i--){
            if(str[i-1] >='A') ans = ans + (str[i - 1] - 'A'+10) * sum;
    		else ans = ans + (str[i - 1] - '0') * sum;
            //cout<<ans<<endl;
            sum *= n;
        }
        return ans;
        //printf("%d
    ", ans);
    }
    
    int main()
    {
    	string str;
    	cin>>str;
    	int ans2 = Ten_change(16,str);
    	Arbitrary_change(ans2,16);
    	cout<<"Decimal: "<<ans2<<endl;
    	Arbitrary_change(ans2,8);
    	 
    	
    	
    	return 0;
    }

  • 相关阅读:
    k8s如何删除处于terminating状态的ns资源
    js 可选链操作符
    Pod 配置,生命周期,调度
    cocos creator (二)
    cocos creator
    域名
    05月19日15:40:00 学习进度笔记
    springboot使用springsecuity
    05月19日16:51:53 学习进度笔记
    05月19日16:51:59 学习进度笔记
  • 原文地址:https://www.cnblogs.com/pearfl/p/10733169.html
Copyright © 2020-2023  润新知