ACM杭电的AC回顾——2028
来源:互联网 发布:淘宝四个钻石 编辑:程序博客网 时间:2024/04/27 14:33
惯例先上题目,后上解析,最后上自己的代码
题目
Lowest Common Multiple Plus
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 47706 Accepted Submission(s): 19782
Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6
3 2 5 7
Sample Output
12
70
题目解析
个人认为,这道题真的挺好玩,具体好玩在哪呢,因为他花费了脑子去想他的解法!
这道题求得是n个数的最小公倍数,要最小的话可以直接列举出一系列的数去除以每个数字,直到找到最小的并且可以全部除尽的数,我们可以选择第一个数的倍数作为这一系列的数,之后用一个循环重复对其他数求余,如果发现有余数,说明那就是除不尽,那就要让这个数增一倍,用下一个数在去做同样事。
可是再循环里面怎么让他再次这么做呢?重点来了,以前我们做for循环有没有遇到再修改变量的时候不小心把循环用的那个变量改掉的情况呢?(反正我是做过这个蠢事)这里我们就是要这么做,因为这么做可以让我们的循环重新开始,只要我们把那个变量修改到最初始的值,就可以让这个循环重头做起~
不过这里要注意,for循环是在执行完内部语句后,最后执行那个对变量操作的语句,所以值要改的比起始值小一
/********************求n个数的最小公倍数。**********************/#include<stdio.h>void main(){ int a[200],n,i; int m; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) scanf("%d",&a[i]); m=a[1]; for(i=2;i<=n;i++) { if(a[1]%a[i]!=0) { a[1]=a[1]+m; i=1; } } printf("%d\n",a[1]); }}
最后祝大家AC愉快哦:)
- ACM杭电的AC回顾——2028
- ACM杭电的AC回顾——2025
- ACM杭电的AC回顾——2026
- ACM杭电的AC回顾——2027
- ACM杭电的AC回顾——2029
- ACM杭电的AC回顾
- ACM杭电的AC回顾
- ACM杭电的AC回顾
- 杭电 acm AC Me
- 基于python3的杭电HDU ACM AC自动机
- 杭电ACM Steps中Chapter One ——Section Two 所有的ac代码及解析
- 杭电ACM 1219 AC Me
- 杭电 acm 今年暑假不AC
- 杭电ACM—HDU1200
- 杭电ACM 2037 今年暑假不AC
- 杭电ACM 2037 今年暑假不AC
- 杭电ACM.1002题(C语言) AC通过
- 杭电ACM 1041 Computer Transformation java代码详解AC
- [CAAnimation核心动画练习一]普通的平移,旋转,缩放
- python错误、调试和测试
- 字符串转日期
- android 遍历根目录获取音乐文件从听筒播放 延迟播放
- [疯狂Java笔记]AWT:GridLayout网格布局、GridBagLayout网格袋布局
- ACM杭电的AC回顾——2028
- 项目经理之项目经理应该做什么
- AndroidStudio 文档自动提示没有内容的解决办法
- 项目经理之项目跟踪
- c#冒泡排序
- 内存
- [疯狂Java笔记]AWT:CardLayout卡堆布局
- 16. 3Sum Closest
- 关于mac下eclipse 安装idk及配置jre