• ACM比赛(进制转换)


    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu

    Description

     把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示。

    Input

     每行一个整数x,0<= x <= 2^31。

    Output

     每行输出对应的八位十六进制整数,包括前导0。

    Sample Input

    0
    1023

    Sample Output

    0x00000000
    0x000003FF

    程序分析:对于进制的转换这类问题的方法是除基取余,结果反过来写。但对于这个题目大家可以看到并有提示几次结束,所以我们可以用这样一条语句来实现结束:

    while(cin>>n)或许是while(cin>>n!=EOF)这两条语句是等价的。此外值得注意的就是上一次结束完一定要记得清0,这条语句也可以写在第一个while语句后,这样就能够解决上次的结果会影响这次的结果了。
    程序代码:
    #include<cstdio>
    #include<iostream>
    using namespace std;
    int main()
    {char a[11]={"0000000000"};
    
    int n,i=0,k=0,T;
    
    	char j='0';
    while(cin>>n)
    	{
    	while(n)
    {  
    	i=n%16;
    	if(i>9)
      j=i-10+'A';
    	else j=i+'0';
      k++; 
      a[k]=j;
     
     n=n/16;
    } cout<<"0x";
    for(i=8;i>0;i--)
    cout<<a[i];
    cout<<endl;
    for(int l=0;l<11;l++)
    a[l]='0';
    k=0;
    }
    return 0;
    }
  • 相关阅读:
    linux nohup
    并发编程-多进程模块介绍
    并发编程-多进程
    网络编程-粘包现象
    Typora快捷键Mac
    网络编程
    异常处理
    面向对象-元类介绍
    面向对象-内置方法
    面向对象-反射
  • 原文地址:https://www.cnblogs.com/yilihua/p/4653722.html
Copyright © 2020-2023  润新知