我是靠谱客的博主 直率薯片,这篇文章主要介绍蓝桥 给定正整数n JAVA,现在分享给大家,希望可以做个参考。

你的任务是用最少的操作次数把序列1,2,…,n中的所有数都变成0。
每次操作可从序列中选择一个或多个整数,
同时减去一个相同的正整数。比如,
1,2,3可以把2和3同时减小2,得到1,0,1。

[输入]
输入包含多组数据。每组仅一行,为正整数n(n≤109)。
输入结束标志为文件结束符(EOF)。

[输出]
对于每组数据,输出最少操作次数。
思路 :就是一串数据,完了一直同时减他们的最大公倍数,减到0为止,输出减的次数。

	public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while (scanner.hasNext()) {
//判断是否有数据输入
int x=scanner.nextInt();
int ans=1;
//1-0的时候还有一次,所以要给个固定1
while (x!=1) {
x/=2;
ans++;
}
System.out.println(ans);
}
}

下面这个调用方法不好理解……

	public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n, m = 0;
n = scanner.nextInt();
System.out.println(function(n, m));
}
public static int function(int n, int m) {
while (n != 0) {
if (n == 1)
return 0;
else if (n % 2 == 0)
return 1 + function(n / 2, m + 1);
int x = function(n + 1, m + 1);
int y = function(n - 1, m + 1);
if (x > y) return y + 1;
else
return x + 1;
}
return m;
}

小剧场:我欲穿花寻路,直入白云深处,浩气展霓虹。

最后

以上就是直率薯片最近收集整理的关于蓝桥 给定正整数n JAVA的全部内容,更多相关蓝桥内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部