(Java实现) 洛谷 P1028 数的计算

题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数nn):

先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:

不作任何处理;

在它的左边加上一个自然数,但该自然数不能超过原数的一半;

加上数后,继续按此规则进行处理,直到不能再加自然数为止.

输入输出格式
输入格式:
1个自然数n(n≤1000)

输出格式:
1个整数,表示具有该性质数的个数。

输入输出样例
输入样例#1:
6
输出样例#1:
6

import java.util.Scanner;


public class shudejisuan {
	public static int count = 0;
	public static void main(String[] args) {
		Scanner sc =new Scanner(System.in);
		int n = sc.nextInt();
		sc.close();
		int [] f = new int [n+1];
		  for(int i=1;i<=n;i++){ //1-n的递推
		        for(int j=1;j<=i/2;j++){
		            f[i]+=f[j]; //每一位叠加,递推走起
		        }
		        f[i]++; //加上本身
		    }
		System.out.println(f[n]);
	}
//	public static void f(int a){
//		count++;
//		if(a==1) return ;
//		for (int i = 1; i <= a/2; i++) {
//			f(i);
//		}
//		
//	}

}

posted @ 2019-06-01 07:45  南墙1  阅读(38)  评论(0编辑  收藏  举报