zoukankan      html  css  js  c++  java
  • UVA 1594 Ducci Sequence(紫书习题5-2 简单模拟题)

           A Ducci sequence is a sequence of n-tuples of integers. Given an n-tuple of integers (a1, a2, · · · , an), the next n-tuple in the sequence is formed by taking the absolute differences of neighboring integers:

                                                                                     (a1, a2, · · · , an) → (|a1 − a2|, |a2 − a3|, · · · , |an − a1|)

          Ducci sequences either reach a tuple of zeros or fall into a periodic loop. For example, the 4-tuple sequence starting with 8,11,2,7 takes 5 steps to reach the zeros tuple:

                                                         (8, 11, 2, 7) → (3, 9, 5, 1) → (6, 4, 4, 2) → (2, 0, 2, 4) → (2, 2, 2, 2) → (0, 0, 0, 0).

          The 5-tuple sequence starting with 4,2,0,2,0 enters a loop after 2 steps:

                                  (4, 2, 0, 2, 0) → (2, 2, 2, 2, 4) → (0,0,0,2,2) → (0, 0, 2, 0, 2) → (0, 2, 2, 2, 2) → (2, 0, 0, 0, 2) → (2, 0, 0, 2, 0) →

                                (2, 0, 2, 2, 2) → (2, 2, 0, 0, 0) → (0, 2, 0, 0, 2) → (2, 2, 0, 2, 2) → (0, 2, 2, 0, 0) → (2, 0, 2, 0, 0) → (2, 2, 2, 0, 2) →

                                                                       (0, 0, 2, 2, 0) → (0, 2, 0, 2, 0) → (2, 2, 2, 2, 0) → (0,0,0,2,2) → · · ·

          Given an n-tuple of integers, write a program to decide if the sequence is reaching to a zeros tuple or a periodic loop.

    Input

    Your program is to read the input from standard input. The input consists of T test cases. The number of test cases T is given in the first line of the input. Each test case starts with a line containing an integer n (3 ≤ n ≤ 15), which represents the size of a tuple in the Ducci sequences. In the following line, n integers are given which represents the n-tuple of integers. The range of integers are from 0 to 1,000. You may assume that the maximum number of steps of a Ducci sequence reaching zeros tuple or making a loop does not exceed 1,000. Output Your program is to write to standard

    output.

    Print exactly one line for each test case. Print ‘LOOP’ if the Ducci sequence falls into a periodic loop, print ‘ZERO’ if the Ducci sequence reaches to a zeros tuple.

    Sample Input

    4

    4

    8 11 2 7

    5

    4 2 0 2 0

    7

    0 0 0 0 0 0 0

    6 1 2 3 1 2 3

    Sample Output

    ZERO

    LOOP

    ZERO

    LOOP

    好水的题,,直接莽过去就行了过了,,,或许有不需要循环这么多次的方法。。。

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstdio>
     4 using namespace std;
     5 int a[20];
     6 int n;
     7 bool change()  //模拟运算过程
     8 {
     9     int sum = 0;
    10     int t = a[1];
    11     for(int i = 1; i <= n;i++)
    12     {
    13         if(i!=n) a[i] = abs(a[i]-a[i+1]);
    14         else a[i] = abs(a[i]-t);
    15         sum+=a[i];
    16     }
    17     if(sum==0) return true;
    18     else return false;
    19 }
    20 int main()
    21 {
    22     int T;
    23     scanf("%d",&T);
    24     while(T--)
    25     {
    26         scanf("%d",&n);
    27         for(int i = 1;i <= n;i++)
    28         {
    29             scanf("%d",&a[i]);
    30         }
    31         int j;
    32         for( j = 1;j <= 1000 ; j++)
    33         {
    34             if(change()) break;
    35         }
    36         if(j>1000) printf("LOOP
    ");
    37         else printf("ZERO
    ");
    38     }
    39     return 0;
    40 }
  • 相关阅读:
    《精益创业 埃里克莱斯》精读 读书笔记总结----《创业必读书第6本》--创业第二关跑通业务:如何快速完成从0到1的业务验证的第1本
    deque STL 深入剖析 TODO
    leetcode 901 股票价格跨度
    「学习笔记」多项式 I
    专题讨论【索引失效】
    手撕代码和笔试题
    如何通过科学的方法来在win10运用office 技术
    js es6 map函数
    数据分析中的'疑难杂症'小结(一)
    吴恩达机器学习作业1- 线性回归作业(python实现)
  • 原文地址:https://www.cnblogs.com/darkboy/p/9370002.html
Copyright © 2011-2022 走看看