`
jackchen0227
  • 浏览: 146765 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

joj1006 十进制转换成base进制

    博客分类:
  • ACM
 
阅读更多
#include <stdio.h>
#include <string.h>
int a[20];
int b[20];
//将十进制数转化成 base进制
void baseConvert(int num,int * array,int base)
{
	int i = 0;
	while(num)
	{
		array[i] = num % base;		
		num = num / base;
		i++; 
	}
}
void basePrint(int * arr)
{
	int i = 0;
	while(arr[i] != -1)
		i++;
	for(i=i-1;i>-1;i--)
		printf("%d",arr[i]);
}
void calculate(int base,int x,int y)
{
	baseConvert(x,a,base);
	baseConvert(y,b,base);
	int k = 0; //这个是进位
	int i = 0;
	int res[20];
	//int res[20] = {-1}; 这种初始化不管用
	memset(res,-1,sizeof(res));
	while( a[i] != -1 && b[i] != -1)
	{
		res[i] = a[i] + b[i] + k;
		k = 0;//用过的进位马上清零
		if(res[i] >= base)
		{	
			k = res[i] / base;
			res[i] = res[i] % base;
		}
		i++;
	}
	if(a[i] == -1)
	{
		while(b[i] != -1)
		{
			res[i] = b[i] + k;
			k = 0;
			if(res[i] >= base)
			{
				res[i + 1] = res[i] / base;
				res[i] = res[i] % base;
			}
			i++;
		}		
	}
	if(b[i] == -1)
	{
		while(a[i] != -1)
		{
			res[i] = a[i] + k;
			k = 0; //此处千万记住,用过的进位 一定要清零!!!!!!
			if(res[i] >= base)
			{
				k = res[i] / base;
				res[i] = res[i] % base;			
			}
			i++;
		}
		if( k!= 0)
			res[i] = k;
	}
	basePrint(a);
	printf(" + ");
	basePrint(b);
	printf(" = ");
	basePrint(res);
	printf("\n");
}
int main()
{
	int base,x,y;
	memset(a,-1,sizeof(a));
	memset(b,-1,sizeof(b));
	//while(scanf("%d %d %d",&base,&x,&y),base,x,y)  如果加上 \n 则要输入四个0 才会停止???
	while(scanf("%d %d %d",&base,&x,&y),base,x,y)
	{
		calculate(base,x,y);
		memset(a,-1,sizeof(a));
		memset(b,-1,sizeof(b));
	}
	return 0;
}

 如果将那个baseConvert函数修改,则下面的计算将更简单

int baseConvert(int num,int * array,int base)
{
	int i = 0;
	while(num)
	{
		array[i] = num % base;		
		num = num / base;
		i++; 
	}
                return i--;
}

 

分享到:
评论

相关推荐

    joj 部分题目答案 自己做的 仅供参考

    joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考

    joj上做的一些ACM试题

    【标题】:“JOJ上做的一些ACM试题” 在计算机科学领域,ACM(Association for Computing Machinery)国际大学生程序设计竞赛是一项备受瞩目的比赛,旨在提升大学生的算法设计、问题解决以及团队协作能力。JOJ...

    joj acm 部分习题解答

    【标题】"joj acm 部分习题解答"揭示了这是一份与JOJ(Judge Online Job)和ACM(国际大学生程序设计竞赛)相关的资源,主要是作者对于某些题目的解题思路和代码实现。JOJ是用于在线评测编程竞赛题目的一种平台,而...

    JOJ-jilin-university--acm.rar_joj

    【标题】"JOJ-jilin-university--acm.rar_joj" 提供的是吉林大学JOJ在线判题系统的编程竞赛代码集,主要用于帮助初学者入门。 【描述】中的信息表明,这个压缩包内的代码样例是专门为在JOJ平台上进行编程训练的学生...

    acm.rar_acm jlu 10_acm jlu 1029_joj 1237_joj10

    "joj_1237"和"joj10"可能分别对应JOJ平台上的两个具体题目编号,1237号问题和编号为10的一组题目。这些标签有助于分类和检索这些源代码,便于查找特定题目或比赛的解决方案。 在压缩包内的文件名列表中,只有一个...

    joj.rar_joj

    操作系统中的页面置换算法是内存管理的重要组成部分,尤其是在虚拟内存系统中。先进先出(First In First Out,简称FIFO)页面置换算法是一种简单的页面置换策略,它的基本思想是:当需要淘汰一个页面时,选择最早...

    Joj - Java Version of Java-开源

    1. **源代码解析**:Joj 可以将 Java 源文件解析成一系列的对象,这些对象包含了代码的所有结构信息,如类、接口、方法、变量等。解析过程能够处理注解、泛型、异常处理等复杂语法结构。 2. **对象模型**:Joj 提供...

    acm joj 1600

    该方法通过将指数 \(b\) 转换成二进制表示,并利用位操作来逐步计算 \(a^b \mod m\)。具体步骤如下: 1. **初始化**:设置一个变量 \(d\) 为1,用于存储最终的结果。 2. **分解指数**:将指数 \(b\) 转换为二进制...

    JoJ-crx插件

    Etre au courant quand JoJ est en live,策划人semaine et liens vers lesréséauxauxsocioaux Soyez au courant纠结JoJ开始à流光! 现场直播将继续进行。 约翰·奎因·伊斯特·布鲁和克林·德集团的非官方网站 D...

    joj 1424 硬币兑换问题

    标题“joj 1424 硬币兑换问题”描述的是一个经典的计算机编程问题,它涉及到使用动态规划(Dynamic Programming, DP)方法来解决硬币找零问题。在这个问题中,我们要找到使用最少数量的硬币来凑成特定金额的方式。...

    吉林大学 joj 1000-2645题代码

    吉林大学 joj 1000-2645题代码,嘿嘿,大家就不用在花JPOINT买代码了,祝ACMer实现自己的心愿

    吉林大学ACM题集.pdf-JOJ

    #### 标题:吉林大学ACM题集.pdf—JOJ 此文档标题明确指出了文档的主要内容——一个由吉林大学组织编写的ACM竞赛题集,并且该题集是以PDF格式提供的。这里提到的“JOJ”即吉林大学在线裁判系统(Jilin University On...

    一个有关调度的问题joj1015

    这个题其实现在想起来也不知道是怎么就给ac的。

    JoJo-s-Bizarre-Survival:一个模组,将JoJo的奇异冒险中的看台添加到Minecraft

    该mod基于荒木飞吕彦的JoJo的奇妙冒险漫画和动漫系列。 这个mod也受到KnightDemon的1.12 mod 极大启发。 这个mod的目的是要从专营权中尽可能多地增加Minecraft,该mod目前仅包含Stand能力,其他能力(Hamon,...

    安全文明施工管理目标【精选文档】.doc

    4. **现场管理目标**:根据JOJ59—59安全检查标准和重庆市建筑工地文明施工标准,对施工现场进行规范化管理,争取成为重庆市的安全文明施工示范工地。 5. **安全管理目标**: - **安全教育目标**:建立安全生产...

    furystudios

    furystudios 普尔维·扎达塔克(Prvi zadatak) ...DroppingOff - radnikhodajućidolazi做pripadajuće科萨雷(izvedeno kroz provjeru tagova kutije)我卡达joj JE dovoljno blizu,fizičkiJE lan

    ControlEstoque_GH:..

    Este Projeto签证是由estoque进行的,它是由mer mercadorias uma determinada empresa sejam averiguadas和atualizadas autoamente na tela do computador制成的。 计划书 Projeto:SIG清单:Sistema de Controle ...

    大智慧最新安装

    大智慧最新安装包,老的已经过期不能查询个人自选股,所以推荐最新的大智慧给大家安装

Global site tag (gtag.js) - Google Analytics