zoukankan      html  css  js  c++  java
  • UVa 11384 (推公式+递归)

    题目:

    给你1到n,现在让你将每个数变成0,每一步操作可以选取任意数一起减去一个整数,减完了不能为负数!问你最少需要几步?

    巨水的题,然而为什么要写博客呢?提醒自己要记得递归函数,不要傻傻的开数组硬比较

    公式:f(n)=f(n/2)+1;

    代码如下:

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 int f (long long int n)
     5 {
     6     if (n==1)
     7     return 1;
     8     else
     9     return f(n/2)+1;
    10 }
    11 int main()
    12 {
    13     long long int n;
    14     while (~scanf("%lld",&n))
    15     {
    16         printf("%d
    ",f(n));
    17     }
    18     return 0;
    19 }
  • 相关阅读:
    神秘题目4
    神秘题目3
    神秘题目2
    AC自动机
    Fence Obstacle Course 题解
    Fractal Streets
    龟速乘
    快速幂
    Stall Reservation
    Sunscreen
  • 原文地址:https://www.cnblogs.com/agenthtb/p/5995582.html
Copyright © 2011-2022 走看看