zoukankan      html  css  js  c++  java
  • 蓝桥杯进制转换的一题……

      算法提高 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;
    }

  • 相关阅读:
    SqlLiteHelper:基于C#的SqlLite数据库访问基类
    SQL注入专题整理帖
    SQLite数据库查询优化
    php mysql与mysqli 区别
    PHPCMS V9模板制作常用变量表
    实用正则手机和邮箱
    windows2003+iis6.0+php(fastcgi)5.3+wincache+memcached
    ajax 写法
    php防注入,表单提交值转义
    IE6下的两个兼容问题调试
  • 原文地址:https://www.cnblogs.com/pearfl/p/10733169.html
Copyright © 2011-2022 走看看