(Java实现) 洛谷 P1028 数的计算】的更多相关文章

import java.util.Scanner; import java.util.Arrays; public class Main { private static Scanner cin; private static int[] rem = new int[501]; public static void main(String args[]) throws Exception { cin = new Scanner(System.in); Arrays.fill(rem,-1); i…
P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入输出格式 输入格式: 一个自然数n(n<=1000) 输出格式: 一个整数,表示具有该性质数的个数. 输入输出样例 输入样例#1: 复制 6 输出样例#1: 复制 6 说明 满足条件的…
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入输出格式 输入格式: 1个自然数n(n≤1000) 输出格式: 1个整数,表示具有该性质数的个数. 输入输出样例 输入样例#1: 6 输出样例#1: 6 import java.util.Scanner; public…
https://www.luogu.org/problemnew/show/P1028 只用递归会超时,需要用递归型动规,用一个数组保存已经算过的值,避免重复计算. 求数字为n的方案数的最优子结构为:求数字从1到n/2的方案数之和再加上这个数字本身,即fn=f1+f2+...+f(n/2)+1, 边界为:1的符合条件的方案数只有它自己,即f1=1. 例: f(6)=f(1)+f(2)+f(3)+1=1+2+2+1=6. f1=1,f2=f1+1=1+1=2,f3=f1+1=1+1=2. #inc…
嗯... 首先这道题想到的就是递推.... 但是递推失败 (不知道自己是怎么想的 然后又想打一个暴力,但是数的最高位太难存储了,所以又放弃了(并且好像这个暴力大约500就会炸... 然后看了题解,才发现是这样的简单.... 先看一下题: 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自…
题意:链接:https://www.luogu.org/problem/P1028 先输入一个自然数n (n≤1000) , 然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自然数为止 输出满足该性质数的个数. Sample Input: 6 Sample output 6 说明:满足条件的数为6,16,26,126,36,136 这道题是一道简单的递推题:我们可以先写几个样例: n=0或…
题目链接:https://www.luogu.com.cn/problem/P1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 \(n\) ): 先输入一个自然数 \(n(n \le 1000)\) ,然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入格式 1个自然数 \(n(n \le 1000)\) 输出格式 1个整数,表示具有该性质数的个数. 问…
题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.          不作任何处理; 2.          在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.          加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入描述 Input Description 一个数n 输出描述 Output Description 满足条件的数的个数 样例…
https://www.luogu.org/problem/P1028 #include<cstdio> using namespace std; int main(){ ,i,f[]; f[]=f[]=; scanf("%d",&n); ;i<=n;i++){ ==){ f[i]=f[i-]+f[i/]; // f[8]=f[7]+f[4] }else{ f[i]=f[i-]; //f[7]=f[6] } } printf("%d\n",…
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入格式 1个自然数n(n≤1000) 输出格式 11个整数,表示具有该性质数的个数. 输入输出样例 输入 6 输出 6 (说明/提示:满足条件的数为:6,16,26,126,36,136) 我的分析  初看此题,…