蛤玮买好了礼物
2016-04-18 20:42
239 查看
为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".
还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?
每组数据第一行一个整数n(1<=n<=100),表示蛤玮买来的铅笔个数,接下来一行n个整数,表示n个铅笔的长度.保证长度都为正整数且小于1e7.
2
2 3
3
4 6 14
12
HINT
对于第一个输入,最终掰成了5个长度为1的铅笔,第二个输入,最终掰成了12个长度为2的铅笔。
AC代码:
无语啊,大水题,当时不知道卡到哪儿了,竟然没写出来
Description
蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".
还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?
Input
T(1<=T<=100),表示数据组数.每组数据第一行一个整数n(1<=n<=100),表示蛤玮买来的铅笔个数,接下来一行n个整数,表示n个铅笔的长度.保证长度都为正整数且小于1e7.
Output
每组数据输出一行,表示最终的铅笔个数.Sample Input
22
2 3
3
4 6 14
Sample Output
512
HINT
对于第一个输入,最终掰成了5个长度为1的铅笔,第二个输入,最终掰成了12个长度为2的铅笔。AC代码:
无语啊,大水题,当时不知道卡到哪儿了,竟然没写出来
#include<iostream> #include<cstdio> using namespace std; int gcd(int x,int y) { int t; while(y!=0){ t=x%y; x=y; y=t; } return x; } int main() { int T,n; int a[110]; int i,j,k; while(~scanf("%d",&T)) while(T--){ k=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); k+=a[i]; } if(n==1)printf("%d\n",n); else{ j=gcd(a[0],a[1]); for(i=2;i<n;i++){ j=gcd(j,a[i]); } printf("%d\n",k/j); } } return 0; }
相关文章推荐
- 罪犯转移
- iOS之远程通知使用介绍
- hdu 3006(状态压缩)
- Groovy入门(三)——集合类型List
- Android中LoaderManager:AsyncTaskLoader和CursorLoader的使用
- SEO分析:都是流量惹的祸
- Intent的带对象传值
- 单例模式
- Groovy入门(二)——集合类型-Range
- 【NOIP2015模拟11.3】备用钥匙
- WEB网站常见的受攻击方式及预防手段
- LoadTypeLibEx
- spoj 16891 Character Patterns (Act 8)
- java内存区域与内存溢出异常
- 块级元素和内联元素区别
- android studio 签名并打包
- unity性能分析
- Messenger的基本用法(本质是跨APP的绑定服务)
- RC4加密算法的原理及实现
- Android布局之FrameLayout