前言
算法练习记录
题目
半数集问题。
问题描述:给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下:
(1) n属于set(n) ;
(2) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;
(3) 按此规则进行处理,知道不能再添加自然数为止。
例如,set(6)={6,16,26,126,36,136},半数集set(6)中有6个元素。
输入:整数n(0<n<1000)
输出:半数集set(n)中的元素个数。
截图
代码(java):
package com.hb;
public class AlgorithmTest8 {
public static int solve(int n)
{
if(n==0)return 1;
int sum = 0;
for(int i=0;i<=(n/2);i++)
sum+=solve(i);
return sum;
}
public static void main(String[] args) {
int n = 6;
System.out.println("set("+n+")半数集元素个数"+solve(n));
}
}
本文使用 文章同步助手 同步