Lowest Common Multiple Plus ——ACM
1. Lowest Common Multiple Plus
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6
3 2 5 7
Sample Output
12
70
该题只要按顺序向每两个求最小公倍数即可,并将所得倍数与下一个数字再进行运算求最小公倍数,循环最终得到所需值。
虽然原题说可以假设最后的输出是一个32位的整数
,但是在中间运算过程中,可能会存在溢出
问题,例如a * b
可能会溢出,因此可以用a / gcd(a, b) * b
来代替a * b / gcd(a, b)
,或者直接将定义long long a, b
避免溢出。
//第一种
#include <stdio.h>int gcd(int a, int b){int x;if(a < b){x = a;a = b;b = x;}while(x = a % b){a = b;b = x;}return b;
}int main (void)
{int n, a, b;while(scanf("%d", &n) != EOF){scanf("%d", &a);while(--n){scanf("%d", &b);a = a / gcd(a, b) * b;//注意此处a * b可能溢出}printf("%d\n", a);}return 0;
}//第二种,long long型
#include <stdio.h>int gcd(long long a, long long b){int x;if(a < b){x = a;a = b;b = x;}while(x = a % b){a = b;b = x;}return b;
}int main (void)
{int n;long long a, b;while(scanf("%d", &n) != EOF){scanf("%lld", &a);while(--n){scanf("%lld", &b);a = a / gcd(a, b) * b;}printf("%lld\n", a);}return 0;
}
2.汉字统计
统计给定文本文件中汉字的个数。
Input
输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。
Output
对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。 Hint:从汉字机内码的特点考虑~
Sample Input
2
WaHaHa! WaHaHa! 今年过节不说话要说只说普通话waHaHa!WaHaHa!
马上就要期末考试了Are you ready?
Sample Output
14
9
本题主要在汉字机内码的存储特点,每个汉字站两个字节,而每个字节最高位为1,因此以十进制表示就是负数,所以只要得到为负值的个数,再除以2就是汉字的个数。(只是linux不能直接调用gets()
,无法直接测试…)
#include <stdio.h>
#include <string.h>
int main (void)
{int i, n, len, count;char ch[1000];scanf("%d\n", &n);while(n--){count = 0;gets(ch);len = strlen(ch);for(i = 0; i < len; i++){if(ch[i] < -1){count++;}}printf("%d\n", count / 2);}return 0;
}
Lowest Common Multiple Plus ——ACM相关推荐
- HDU2028 Lowest Common Multiple Plus【GCD+LCM】
Lowest Common Multiple Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- HDU2028 Lowest Common Multiple Plus【入门】
Lowest Common Multiple Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- hdu 2028 Lowest Common Multiple Plus
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2028 题目大意:求最小公倍数,用辗转相除法. 1 #include <stdio.h> 2 ...
- 【HDU 2028】Lowest Common Multiple Plus
Problem Description 求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数 ...
- HDU - 2028 Lowest Common Multiple Plus
Description 求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数,每个测试实例的 ...
- HDU 4913 Least common multiple
/* hdu4913 Least common multiple http://acm.hdu.edu.cn/showproblem.php?pid=4913 离散化 线段树 统计逆序数思想 tips ...
- 杭电2028--Lowest Common Multiple Plus
Lowest Common Multiple Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- hdoj-2028-Lowest common multiple plus
题目:Lowest common multiple plus 代码: #include<stdio.h> int common(int a,int b)//计算最大公约数 {int c=a ...
- Lowest Common Ancestor of a Binary Search Tree(树中两个结点的最低公共祖先)
题目描述: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in ...
最新文章
- 代数系统思维导图_线性代数思维导图专题
- 一个简单的blog系统(九) 增加标签和标签页面
- hive2solr问题小结
- python的for语句中i未被定义_python – PyLint:使用可能未定义的循环变量警告
- 元宇宙突然大火,可是,到底什么是元宇宙呢?
- [Usaco2008 Feb]Eating Together麻烦的聚餐[最长不下降子序列]
- linux 驱动读写文件,Linux下读写寄存器
- [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)
- iOS 获取本地视频的缩略图
- 微信支付全流程对接文档
- 微软苏州校招笔试 12月27日 By Java
- 什么是ribbon?
- 记录一下自己的春招,唯品会、360、京东offer已收、腾讯offer_call已达!!!
- 06_XML的写入_dom4j添加、删除、修改Xml文件内容
- 交换机端口mtu值最大_中低端交换机修改三层接口MTU值的说明
- 【人因工程】熵值法与CRITIC法求权重
- 温暖的奢侈,当手机遇到机器人
- 阿里云服务(三)—对象存储OSS和块存储
- php中美元符号是什么意思,js程序中美元符号$是什么
- reload php-fpm命令,php-fpm的reload过程
热门文章
- 课时57.HTML被废弃的标签(掌握)
- Spring实战(前言:Spring容器)
- 【链接】Linux C/C++ 学习路线-已拿腾讯、百度 offer
- 【[SHOI2015]超能粒子炮·改】
- Java多线程:线程间通信之volatile与sychronized
- 去除aspx生成的页面最开始的空行
- C++:cin.getline
- java mysql_Java与mysql的连接
- android 系统挂载ext4格式U盘,macOS 系统下格式化 U 盘为 ext4 格式
- java整型和浮点型_Java基本的程序结构设计 整形和浮点型