zoukankan      html  css  js  c++  java
  • hdoj 2031 进制转换

    进制转换

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 30304    Accepted Submission(s): 16811


    Problem Description
    输入一个十进制数N,将它转换成R进制数输出。
     
    Input
    输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
     
    Output
    为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
     
    Sample Input
    7 2
    23 12
    -4 3
     
    Sample Output
    111
    1B
    -11
     
    此题主要考察十进制转换为其他进制,利用十进制数短除所要转换的进制每次记录余数,最后倒序输出余数
     
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int n,m,j,i,s,y,l2;
    	char b[100];
    	while(scanf("%d %d",&n,&m)!=EOF)
    	{
    		y=0;l2=0;j=1;
    		s=0;
    		while(n!=0)
    		{
    			if(n<0)   //考虑n为负数的情况 
    			{
    				s=n;
    				n=-n;
    			}
    			 y=n%m;   //求每次短除m后的余数 
    			 n=n/m;      //求每次短除m后的商 
    			 if(y>=10)
    			 {
    			 	l2=j;  //记录字符串长度 
    			 	b[j]=y+55;//将数字转换为字符 
    			 	j++;
    			 }
    			 else
    			 {
    			 	 l2=j;
    			     b[j]=y+48;
    			     j++;
    			 }
    		}
    		if(s<0)
    			printf("-");
    		for(i=l2;i>=1;i--)
    		{			
    		    printf("%c",b[i]);
    		}
    		printf("
    ");
    	}
    	return 0;
    } 
    

      

  • 相关阅读:
    day_10作业
    day_10
    day_09
    day_08
    猜年龄游戏
    day_07
    day_06作业
    day05课堂小结
    day05作业
    day04课堂小结
  • 原文地址:https://www.cnblogs.com/tonghao/p/4457989.html
Copyright © 2011-2022 走看看