zoukankan      html  css  js  c++  java
  • hdu 4952 Number Transformation (找规律)

    题目链接

    题意:给你个x,k次操作,对于第i次操作是:要找个nx,使得nx是>=x的最小值,且能整除i,求k次操作后的数

    分析:

    经过打表找规律,会发现最后的x/i,这个倍数会趋于一个固定的值,求出这个固定的值和K相乘就可以了,

    为什么会趋于固定的值呢,因为最后虽然i在不断增长,但是x也是在增长的,每次的倍数会回退一个发现

    有余数,然后再加上一个,所以趋于稳定。

    官方题解:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 #define LL __int64
     7 using namespace std;
     8 
     9 int main()
    10 {
    11     LL x, k, i, pre, tmp;
    12     int ca = 1;
    13     while(~scanf("%I64d%I64d", &x, &k))
    14     {
    15         if(x==0 && k==0) break;
    16         pre = x/1;
    17         for(i = 2; i <= k; i++)
    18         {
    19             tmp = x/i;
    20             if(x%i==0)
    21             {
    22                 pre = tmp;
    23                 continue;
    24             }
    25             x = (tmp+1)*i;
    26             if(pre == tmp+1) // 和之前的相同
    27                 break;
    28             pre = tmp+1;
    29         }
    30 
    31         printf("Case #%d: ", ca++);
    32         printf("%I64d
    ", pre*k);
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    RequestMapping_PathVariable注解
    RequestMapping_Ant 路径
    RequestMapping_请求参数&请求头
    RequestMapping_请求方式
    RequestMapping注解_修饰类
    18)C++对C的增强
    17)C++开始--命名空间
    16)未理解透
    15)文件函数例子
    14)文件操作
  • 原文地址:https://www.cnblogs.com/bfshm/p/3913496.html
Copyright © 2011-2022 走看看