hdu 1019
来源:互联网 发布:ow网络初始化失败 编辑:程序博客网 时间:2024/05/22 00:55
题目概述
给定N个数,求其最小公倍数
时限
1000ms/2000ms
输入
第一行正整数times,其后times行,每行第一个为正整数N,其后N个正整数
限制
所有输入的数字皆为正数且在32位整型范围内
输出
每行一个正整数,为其最小公倍数
样例输入
3
3 5 7 15
6 4 10296 936 1287 792 1
2 536870912 536870911
样例输出
105
10296
288230375614840832
讨论
题目可没说输出也在32位范围之内
求最大公约数的gcd会不?两个数的最小公倍数就是两数之积除以其最大公约数,对于多个数也差不多,每次求出两个数的公倍数后即将之视为一个数,继续和后面的数计算即可
题解状态
15MS,1716K,696 B,C++
题解代码
#include<stdio.h>#include<string.h>#include<algorithm>#include<vector>using namespace std;#define INF 0x3f3f3f3f #define MAXN 22#define memset0(a) memset(a,0,sizeof(a))#define llong long longinline llong gcd(llong a, llong b)//内联的 兴许能快点{ while (b) { llong c = a%b; a = b; b = c; } return a;}llong fun(int N){ llong a, b; scanf("%lld", &a);//input for (int p = 1; p < N; p++) { scanf("%lld", &b);//input//没有必要把每个输入都存下来 算完公倍数扔掉就可以了 a = a*b / gcd(a, b); } return a;}int main(void){ //freopen("vs_cin.txt", "r", stdin); //freopen("vs_cout.txt", "w", stdout); int times; scanf("%d", ×);//input while (times--) { int N; scanf("%d", &N);//input printf("%lld\n", fun(N));//output }}
EOF
0 0
- hdu 1019
- hdu 1019
- hdu 1019
- hdu 1019
- hdu 1019
- hdu 1019
- HDU 1019
- hdu 1019
- HDU 1019
- hdu 1019
- HDU-1019
- hdu 1019
- hdu 1019
- hdu 1019
- hdu 1019
- hdu 1019解题报告
- hdu 1019最小公倍数
- hdu 1019 数学
- HDU 5538 House Building
- thinkphp 整合phpqrcode 生成二维码
- iOS开发工程师与UI视觉设计师不得不说的故事
- ThinkPHP 开始事物操作
- Unity5.0 EventSystem事件系统的详细说明
- hdu 1019
- Hashtable 数据遍历的几种方式
- 深入理解Java:注解(Annotation)--注解处理器
- 多线程死锁的产生以及如何避免死锁
- PLC学习笔记之2
- Storyboard的爱与恨
- 在leangoo里怎么复制卡片,删除卡片,查看任务轨迹?
- linux脚本实现监控某个进程并重启
- swift去除掉指定分割线