神奇的数列之“Last Defence ”

题目大意:给你两个数字,之后的每个数字都等于这两个数字之差的绝对值。问这列数字有多少个不同的数字。

样例输入/输出:input  7 4;output  6;

解题思路:此题使用辗转相除法的思想。首先两个数字x,y(假定y>x),则一定存在y=kx+b;例如100和7。

然后会发现这个数列是  100 7 93 86 7 79 72 7......那么这个数列中不同的数字应该是100/7个  最后会得到  7  2...... ;

然后重复上述动作,直至出现0;

AC代码:

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        long T = sc.nextLong();
        long k = 1L;
        while(T > 0){
            long x = sc.nextLong();
            long y = sc.nextLong();
            long sum = 0L;
            long mod = -1L;
            if(x == 0 && y != 0){System.out.println("Case #" + k + ": 2");}
            else if(x != 0 && y == 0){System.out.println("Case #" + k + ": 2");}
            else if(x == 0 && y == 0){System.out.println("Case #" + k + ": 1");}
            else{
                while(mod != 0){
                    if(x < y){long t = x;x = y;y = t;}
                    sum = sum + x/y;
                    mod = x%y;
                    x = mod;
                }
                sum = sum + 1;
                System.out.println("Case #" + k + ": " + sum);
            }
            k = k + 1;T = T - 1;
        }
    }
}

一定要注意若是两个数字有一个是0,那么输出2,都是0,输出1.

时间: 2024-10-16 15:07:09

神奇的数列之“Last Defence ”的相关文章

约数和(神奇的数列优化)

题目大意 求区间[x,y]中所有元素的因数和(x<=y) 思路 如果这道题太难了,来看看另一道简单的题: 给你很多个数N,需要你算出这些数所有约数的和.(N的约数指能整除N的正整数),例如12的约数有1,2,3,4,6,12.所以约数和为1+2+3+4+6+12=28. (1)50分的代码,打表实现 #include<cstdio> const int maxn=5000010; int t,n,s[maxn]; int main(){ for(int i=1;i<=maxn;i+

洛谷P1471 方差

蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的平均数和方差. ——by 洛谷; http://www.luogu.org/problem/show?pid=1471 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

NOIP2017模拟赛 senior 6.29 T1 码灵鼠(A)

Description 码零鼠是一只很喜欢mx数学的神犇,上面那个不是ta本人的样子.这天,ta在研究一个神奇的数列,这个数列是这样的: a0 = 1 an = ai + aj   (n>=1, i,j均在[0,n-1]内均匀随机) Ta想知道对于给定的n,an的期望值是多少,你能告诉ta吗? 出于ta对整数的热爱,你只需要输出答案向下取整后的值 Input 一个整数T,表示数据组数 每组数据一行,包括一个整数n Output 一个整数E(an), 这个码灵鼠难道就是传说中的洋芋= =(手动滑稽

HNOI2017 游记

如果你要问我为什么现在才发出来,那肯定是因为我太懒了 Day0: 日常看板子--不想写题,嘴巴了几道题之后也不想写-- 到了晚上颓起来了--回想了一下似乎也没有立什么flag,那就愉快地颓吧--深感技术下滑严重 Day1: 考前还是很紧张的,不知道为什么一到大考前就觉得自己这也不会那也不会.看了很多板子(虽然最后也没有用上). Day1开始也不知道出了什么问题,总之就是题目打不开,加紧给我们印刷了纸质版--于是就多了40min的打板子时间.然后这40min我就一直在写FFT--最后就是一直到开考

常州day3

Task1 小 W 得到了一堆石子,要放在 N 条水平线与 M 条竖直线构成的网格的交点上.因为小 M 最喜欢矩形了, 小 W 希望知道用 K 个石子最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子. 对于 100%的数据:N<=30000,保证任意两点不重合,K<=N*M 简单题,枚举即可 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 #include<

博弈论类题目小结——转载

出处http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854534 经典的删边游戏小结:http://blog.csdn.net/acm

【算法】先生,您点的查找套餐到了(二分、插入和斐波那契查找)

参考资料 <算法(java)>                           — — Robert Sedgewick, Kevin Wayne <数据结构>                                  — — 严蔚敏 Interpolation Search[插值查找]     — —  维基百科 Fibonacci Search[斐波那契查找]   — —  GeeksforGeeks 根据输入的一个关键字(Key),  在一个有序数组内查找与该关键

我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头

点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书 --异步小编 多年来,我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头,脑海闪现枯燥的公式.冗长的代码:希望每一位阅读和使用算法的人,体会到算法之美,像躺在法国普罗旺斯小镇的长椅上,呷一口红酒,闭上眼睛,体会舌尖上的美味,感受鼻腔中满溢的薰衣草的芳香-- 打开算法之门 瑞士著名的科学家N.Wirth教授曾提出:数据结构+算法=程序. 数据结构是程序的骨架,算法是程序的灵魂. 在我

网易C++面试题--被3整除

小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011.... 并且小Q对于能否被3整除这个性质很感兴趣. 小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除. 输入描述: 输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端. 输出描述: 输出一个整数, 表示区间内能被3整除的数字个数. 输入例子1: 2 5 输出例子1: 3 例子说明1: 12, 123, 1234,