zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    Swift 构造与析构
    Swift 协议
    Swift 扩展
    Swift 多态
    Swift 继承
    Swift 封装
    Swift 方法
    Swift 属性
    Swift 对象
    Swift 类
  • 原文地址:https://www.cnblogs.com/yilihua/p/4653722.html
Copyright © 2011-2022 走看看