我是靠谱客的博主 长情大船,最近开发中收集的这篇文章主要介绍正整数序列-UVA 11384 - Help is needed for Dexter题目:思路:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:

给定正整数n,你的任务是用最少的操作次数把序列1, 2, …, n中的所有数都变成0。每次操作可从序列中选择一个或多个整数,同时减去一个相同的正整数。比如,1,2,3可以把2和3同时减小2,得到1,0,1。
输入包含多组数据。每组仅一行,为正整数n(n≤109)。输入结束标志为文件结束符(EOF)。
对于每组数据,输出最少操作次数。

思路:

找规律发现从中间开始分成两边,把大的那边同时减掉这样是最优的。设最少的步数为 f(n),则答案为 f(n/2) + 1。

代码

#include <stdio.h>

int main()
{
    int n;
    while(scanf("%d", &n) != EOF)
    {
        int ans = 0;
        for(; n > 0; n /= 2)
            ans++;
        printf("%dn", ans);
    }
    return 0;
}

最后

以上就是长情大船为你收集整理的正整数序列-UVA 11384 - Help is needed for Dexter题目:思路:的全部内容,希望文章能够帮你解决正整数序列-UVA 11384 - Help is needed for Dexter题目:思路:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部