zoukankan      html  css  js  c++  java
  • 牛客练习赛21:A黑妹的游戏I

    点击打开链接

    链接:https://www.nowcoder.com/acm/contest/130/A
    来源:牛客网

    题目描述

    黑妹最近在玩一个有趣的游戏,游戏规则是这样的:
    刚开始黑板上有三个不同的初始数字,然后黑妹每一次可以选择黑板上的两个不同的数字,然后计算出这两个不同数字之差的绝对值,如果黑板上没有这个数字,那么就把这个新数字写在黑板上。
    黑妹已经玩腻了这个游戏,现在黑妹想知道她最多能添加多少个数字。

    输入描述:

    第一行一个整数T表示数据组数。(1≤T≤100000)
    接下来T行每行三个整数 a,b,c 表示黑板上的三个初始数字。()

    输出描述:

    对于每组数据输出一行表示答案。
    示例1

    输入

    复制
    2
    3 2 1
    6 5 4

    输出

    复制
    0
    3
    

    这道题暴力肯定是会超时的,应该找出三个数的最大公约数,再用最大的数除以这个数减三就是答案,可以反着来想,从这个最大公约数每次加本身,求加到三个数中最大的那个最多可以加多少次。

    #include<stdio.h>
    #define LL long long 
    LL gcd(LL a,LL b)
    {
    	LL t;
    	if(b>a)
    	{
    		t=a;
    		a=b;
    		b=t;
    	}
    	while(b)
    	{
    		t=b;
    		b=a%b;
    		a=t;
    	}
    	return t;
    }
    int main()
    {
    	LL a,b,c,s1,s2,s3,max;
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%lld%lld%lld",&a,&b,&c);
    		max=a;
    		if(b>max)
    			max=b;
    		if(c>max)
    			max=c;
    		s1=gcd(a,b);
    		s2=gcd(b,c);
    		s3=gcd(s1,s2);              
    		printf("%lld
    ",max/s3-3);
    	}
    	return 0;
    }



  • 相关阅读:
    css 写一个三角形
    vue 知识汇总,中级阶段的。
    获取url参数封装的
    vue 知识点
    不换行css
    微信小程序的横向滚动
    git提交本地分支到远程分支
    linux shell head tail 用法简介
    PHP服务重启
    MongoDB用户创建
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10003031.html
Copyright © 2011-2022 走看看