十八:十六进制转八进制

问题:十六进制转八进制  
问题描述

  给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
  输出n行,每行为输入对应的八进制正整数。
  【注意】
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。
样例输入
  2
  39
  123ABC
样例输出
  71
  4435274
  【提示】

  先将十六进制数转换成某进制数,再由某进制数转换成八进制。

 1 #include<stdio.h>
 2 #include<string.h>
 3 int b[100000];
 4 int initial;
 5 int cun[1000];
 6 void fine(int cun[],int p){
 7     int i,j;
 8     for(i=p-1;i>=0;i--){
 9         while(cun[i]){
10             for(j=i;j>=0;j--) printf("%d",cun[j]);
11             return;
12         }
13     }
14 }
15 void eight(int b[]){
16     int p=0,i;
17     int sum,fun[]={1,2,4};
18     for(i=0;i<initial;){
19         sum=0;
20         int k=0;
21         while(i<initial){
22             sum+=b[i]*fun[k++];
23             i++;
24             if(k==3) break;
25         }
26         cun[p++]=sum;
27     }
28     fine(cun,p);
29 }
30 void Two(int num){
31     if(num==0){
32         while(initial%4) b[initial++]=0;
33         return;
34     }
35     b[initial++]=num%2;
36     Two(num/2);
37
38 }
39 void SixTeen(char str[],int n){
40     int num;
41     if(n-1<0){
42         return;
43     }
44         if(str[n-1]>=‘A‘) num=(str[n-1]-55);
45         else num=(str[n-1]-48);
46         Two(num);
47     SixTeen(str,n-1);
48 }
49 int main(){
50     char str[10][100000];
51     int n,i,j;
52     memset(b,-1,sizeof(b));
53     scanf("%d",&n);
54     for(i=0;i<n;i++){
55         scanf("%s",str[i]);
56     }
57     for(j=0;j<n;j++){
58         n=strlen(str[j]);
59         initial=0;
60         SixTeen(str[j],n);
61         eight(b);
62         printf("\n");
63     }
64
65 }

原文地址:https://www.cnblogs.com/yuming226/p/8150863.html

时间: 2024-10-10 20:49:08

十八:十六进制转八进制的相关文章

【蓝桥杯】 基础练习 十六进制转八进制

基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. 注意 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 239123ABC 样例输

Welcome to Swift (苹果官方Swift文档初译与注解十八)---116~122页(第二章)

Strings and Characters (字符串和字符) 字符串是一组字符组成的序列,例如“hello, world" 或 "albatross”.在Swift中,字符串使用String类型进行声明,它代表一组由Character(字符)类型组成的值的序列. String类型和Character类型提供了一种在代码中处理 (兼容Unicode) 文本的快速方式.字符串创建和管理的语法与C语言的相似,都属于轻量级并且可读性好.字符串的拼接只是简单的 使用加号(+)操作符,而且字符串

十六进制转八进制

基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. 注意 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 239123ABC 样例输

蓝桥杯 基础练习 BASIC-12 十六进制转八进制

基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. [注意] 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 2 39 123ABC

妙哉,十八岁!

18,一个属于青春的数字,一个人生的新起点. 依稀记得2013年的夏天,你们刚踏入二中的样子,你们的朝气和活力让百十年的二中充满勃勃生机.作为校长,非常有幸见证了你们的青春,也非常高兴分享了你们的活力.你们用诗歌向青春举杯,你们用话剧向艺术致敬,你们在运动跑道上刷新纪录,你们在学科竞赛场上创造新的辉煌……这一切都让我看到2016届的你们身上已真正熔铸了二中人的精神与气质.滴水涌泉,赤子钟鸣,每一次的相逢总见二中人内心的澎湃:六和塔影,钱塘潮涌,一次次的回眸更增二中人壮阔的心志. 十八而至,责任以

48. 蛤蟆的数据结构笔记之四十八的有向无环图的应用关键路径

48. 蛤蟆的数据结构笔记之四十八的有向无环图的应用关键路径 本篇名言:"富贵不淫贫贱乐 ,男儿到此是豪雄.-- 程颢" 这次来看下有向无环图的另一个应用关键路径. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135061 1.  关键路径 与AOV-网相对应的是AOE-网(Activity On Edge)即边表示活动的网.AOE-网是一个带权的有向无环图,其中,顶点表示事件(Event),弧表示活动,权表

会员卡管理系统技术解析(十八)Timer定时监听

会员卡管理系统技术解析(十八)Timer定时监听 在web应用中,有时候客户需要一些定时程序,不需要客户自己去操作,而是由应用程序自行触发(代理)执行某些操作.这个时候监听与定时器的配合使用就基本可以实现这个需求了.网上很多代码并不完整,水平未到,看得太吃力了.下面以系统每天00:00:00进行的当日最大单据数维护进行实例解析. 首先,建立相关的包河类,如下图: 图1 然后,在"web.xml"中对定时器和监听类注册,代码如下: <servlet> <servlet-

十八岁出门远行

提到十八岁出门远行这个话题的时候,脑袋里面立刻闪过的是余华的一部同名小说,书中提到:”是的,你已经十八岁了,应该看看外面的世界了,”十八岁,意味着成年,也意味着独立,是时候该独自出去走走看看,看看在自己的世界之外,那样的世界又是怎样的. 就在去年,高考完的暑假,大家都笑谈这是我们累积了十八年的假期,又谈到了一个十八,想想,在这个特殊的阶段,我是不是应该做一点什么,来纪念迄今为止的十八岁的青春呢? 于是,我选择了远行,我选择了将自己的这一段青春的纪念挥洒在行走的路上.所去的地方,不是繁华的城市,也

你的一天也可以是四十八小时

只要你愿意,你的一天将是四十八小时,而不是二十四小时. 时间就是上帝给你的资本.命运之神是公平的,他给每个人的时间都是公平的,他给每个人的时间都不多不少:但成功女神却是挑剔的,她只让那些能把24小时变成48小时的人接近她.下面就是她的助手时间使者透露出来的成功秘笈: 直奔主题 聪明人要远离琐碎,保持焦点.由于我们一次只能踏上一条船,“船”的选择便显得格外重要.为此,经济学家告诉我们,要保持焦点:一次只做一件事情,一个时期只有一个重点.西屋电脑公司总经理迪席勒办公室门上的标语是:“不要带问题给我,