zjnu AllButOneDivisor
来源:互联网 发布:团购网站源码 编辑:程序博客网 时间:2024/06/05 16:00
Description给你K个整数,找到一个正整数N恰好能整除这里面K-1个数,如果有多个答案,输出最小的N,如果没有答案,输出“-1”;K的范围为2到6,每个数字都不同的,并且每个数字范围在1到15. Examples (1) {2, 3, 5} Returns: 6有很多答案符合,比如6,15,75,但是6是最小的,所以输出6. (2) {2, 4, 3, 9} Returns: 12 (3) {3, 2, 6} Returns: -1是2、3的倍数肯定是6的倍数,是6的倍数肯定是2、3的倍数,所以找不到恰好是其中2个数的公倍数。输出“-1”。(4) {6, 7, 8, 9, 10} Returns: 360 (5) {10, 6, 15} Returns: -1Input(gets() 输入,”, ”逗号及空格分隔)Sample Input2, 3, 5Sample Output6
这个题我开始想要用巧妙地方法做 后来发现没有巧妙地方法QAQ
那好吧我的锅 ……
真的就是一言不合就暴力……啊
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;char a[50]={};int b[50]={};long long gcd(int x, int y){return y==0?x:gcd(y,x%y);}long long zxgbs(int x,int y){ return x*y/gcd(x,y);}int main(){ gets(a); int i,j=0,min=999999999; int len=strlen(a); long long gbs; b[0]=a[0]-'0'; for(i=1;i<len;i++) {if(a[i]>='0'&&a[i]<='9'&&a[i-1]>='0'&&a[i-1]<='9') b[j]=10+a[i]-'0'; else if(a[i]>='0'&&a[i]<='9') b[++j]=a[i]-'0';} int k=j; for(i=0;i<=k;i++)//挑出其中一个数 不参与运算 注意i从0开始 { gbs=1; for(j=0;j<=k;j++) { if(i!=j) gbs=zxgbs(gbs,b[j]); //printf("%d\n",gbs); } if(gbs<min&&gbs%b[i]) min=gbs; } if(min<999999999) printf("%d\n",min); else puts("-1");}
0 0
- zjnu AllButOneDivisor
- ZJNU 1888
- ZJNU 1903
- ZJNU 1614
- Zjnu Stadium
- Zjnu Stadium
- Zjnu Stadium
- ZJNU 1889 太空行走
- ZJNU 1006 骑士游历
- HDU 3047 Zjnu Stadium
- hdu 3047 Zjnu Stadium
- hdu 3047 Zjnu Stadium
- HDU 3047 Zjnu Stadium
- hdu 3047 Zjnu Stadium
- O - Zjnu Stadium
- hdu 3047:Zjnu Stadium
- HDU Zjnu Stadium
- hdu3047 Zjnu Stadium
- RSA及TLS/SSL及数字证书原理
- zookeeper原理(转)
- cinder-backup程序流程
- LintCode笔记(11)—— 带重复元素的子集
- ssh整合错误:HTTP Status 500 - Unable to instantiate Action, empaction
- zjnu AllButOneDivisor
- Centos7配置DNS
- 数据算法之二叉树平衡(BinTreeNode Rotate)的Java实现
- C++查询mysql数据库
- MarkDown转换PDF,Word,Html格式
- Spring Web Flow 2.0 入门详解
- 4407: 于神之怒加强版
- JS逻辑表达式的探索
- 即将震撼登场:Chrome标记为“不安全”的非HTTPS网站