1272: 【基础】求P进制数的最大公因子与最小公倍数

时间限制: 1 Sec 内存限制: 16 MB

提交: 684 解决: 415

[提交] [状态] [讨论版] [命题人:外部导入]

题目描述
有两个P进制的整数A,B,求出A,B的最大公因子与最小公倍数,并仍以P进制数的形式输出。 输入
一行,为P A B。(2≤P≤9) 输出
两行 第一行为最大公因子 第二行为最小公倍数 样例输入
2 110 1001 样例输出
(110,1001)=11
[110,1001]=10010

来源/分类

2003年江苏省小学生信息学(计算机)奥赛


题解如下

#include<stdio.h>
#include<string.h>
#include<math.h>
long long int transfer_ten(char *a,int LEN,int jin_zhi)
{
long long int sum=0;
int position=0;
for(int i=LEN-1;i>=0;i--)
{
sum+=(a[i]-'0')*pow(jin_zhi, position++); }
return sum; } void trans_print(long long int zhi,int jin_zhi)
{
char array[99999];
if(zhi==0)
{
array[0]='0';
}
else
{
for(int i=0; ;i++)
{
if(zhi)
{
array[i]=(zhi%jin_zhi+'0');
zhi/=jin_zhi;
}
else
{
break;
}
}
}
int LEN=(int)strlen(array);
for(int i=LEN-1;i>=0;i--)
{
printf("%c",array[i]);
} }
int main()
{
int jin_zhi;
char ar[9999],br[9999];
scanf("%d%s%s",&jin_zhi,ar,br);
int LEN_ar=(int)strlen(ar);
int LEN_br=(int)strlen(br);
long long int sum_ar=transfer_ten(ar, LEN_ar, jin_zhi);
long long int sum_br=transfer_ten(br, LEN_br, jin_zhi); //交换并求 约数,倍数
if(sum_ar>sum_br)
{
long long temp;
temp=sum_ar;
sum_ar=sum_br;
sum_br=temp;
}
long long int product=sum_ar*sum_br;
long long int yu_shu=sum_ar%sum_br;
while (yu_shu)
{
sum_ar=sum_br;
sum_br=yu_shu;
yu_shu=sum_ar%sum_br;
}
long long int max_yue=sum_br;
long long int min_bei=product/sum_br;
printf("(");
for(int i=0;i<LEN_ar;i++)
printf("%c",ar[i]);
printf(",");
for(int i=0;i<LEN_br;i++)
printf("%c",br[i]);
printf(")=");
trans_print(max_yue, jin_zhi);
printf("\n"); printf("[");
for(int i=0;i<LEN_ar;i++)
printf("%c",ar[i]);
printf(",");
for(int i=0;i<LEN_br;i++)
printf("%c",br[i]);
printf("]=");
trans_print(min_bei, jin_zhi); return 0;
}

1272: 【基础】求P进制数的最大公因子与最小公倍数的更多相关文章

  1. Java编程基础——运算符和进制

    Java编程基础——运算符和进制 摘要:本文主要介绍运算符和进制的基本知识. 说明 分类 Java语言支持如下运算符: ◆ 算术运算符:++,--,+,-,*,/,%. ◆ 赋值运算符:=,+=,-= ...

  2. [codevs1157]2^k进制数

    [codevs1157]2k进制数 试题描述 设r是个2k 进制数,并满足以下条件: (1)r至少是个2位的2k 进制数. (2)作为2k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ...

  3. noip2006 2^k进制数

    设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w ...

  4. 关于不同进制数之间转换的数学推导【Written By KillerLegend】

    关于不同进制数之间转换的数学推导 涉及范围:正整数范围内二进制(Binary),八进制(Octonary),十进制(Decimal),十六进制(hexadecimal)之间的转换 数的进制有多种,比如 ...

  5. NOIP2006 2k进制数

    2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换 ...

  6. P1066 2^k进制数

    传送门 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进 ...

  7. 洛谷 P1066 2^k进制数

    P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...

  8. java标签(label)求16进制字符串的整数和 把一个整数转为4个16进制字符表示

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #4f76cb } p.p2 { margin: 0.0px 0. ...

  9. 一本通1649【例 2】2^k 进制数

    1649:[例 2]2^k 进制数 时间限制: 1000 ms         内存限制: 524288 KB [题目描述] 原题来自:NOIP 2006 提高组 设 r 是个 2k 进制数,并满足以 ...

随机推荐

  1. Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

    上一篇我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问.但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式, ...

  2. Windows下安装虚拟机

    一.准备工作 1.下载centos7操作系统 阿里巴巴站点: http://mirrors.aliyun.com/centos/7/isos/x86_64/ 2.下载VMware虚假机 可以直接通过3 ...

  3. Markdown语法说明及常用软件推荐(附链接)

    Markdown语法同样支持HTML标签 以下所有字符均为英文字符 标题 标题级别由#决定,一个为一级 样例 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ...

  4. php7连接mysql8

    最近因为剁手买了mac所以在mac上搭建lnmp环境. 刚好看到mysql从5.7跳到8,性能据说快上一倍,果断尝鲜! lnmp基本都弄好了,但是到用php连接Mysql这一步出了岔子. 出错原因: ...

  5. java实现简单的星座查询

    在校小白,大神勿喷. 版本已简化 连接mysql数据库验证用户名及密码进行登陆 public class mysql {Connection con;public mysql(){    try{   ...

  6. [Alg] 文本匹配-多模匹配-AC自动机

    1. 简介 AC自动机是一种多模匹配的文本匹配算法. 如果采用naive的方法,即依次比较文本串s中是否包含模式串p1, p2,...非常耗时.考虑到这些模式串中可能具有相同子串,可以利用已经比较过的 ...

  7. Webpack中SplitChunksPlugin 配置参数详解

    代码分割本身和 webpack 没有什么关系,但是由于使用 webpack 可以非常轻松地实现代码分割,所以提到代码分割首先就会想到使用 webopack 实现. 在 webpack 中是使用 Spl ...

  8. JS中iframe子页面与父页面之间通信

    iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...

  9. 搭建Hadoop集群需要注意的问题:

    搭建Hadoop集群需要注意的问题: 1.检查三台主机名是否正确 2.检查三台IP是否正确 3.检查 /etc/hosts 映射是否正确 4.检查 JDK和Hadoop 是否安装成功(看环境变量配置) ...

  10. 汉诺塔Java实现

    public class Hanoi { public static void main(String[] args ) { Hanoi hanoi = new Hanoi(); hanoi.hano ...