洛谷-数的计算-过程函数与递归

题目描述 Description

  我们要求找出具有下列性质数的个数(包含输入的自然数n):
  先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
  1.不作任何处理;
  2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;
  3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.

输入输出格式 Input/output

输入格式:
一个自然数n(n<=1000)
输出格式:
一个整数,表示具有该性质数的个数。

输入输出样例 Sample input/output

样例测试点#1

输入样例:

6

输出样例:

6

说明 description

满足条件的数为
6,16,26,126,36,136

思路:这题是入门题,没太大难度,可以从3开始往后循环,前面两个分别赋值为1、2,从三开始,判断如果那个数是奇数,那么这个位置的数等于它前面一个数,否则这个位置的数为前面一个数+前一段中间那个数,最后输出就得了(具体我是怎么想出来的,您可以自己细想一下,我这里就提示到这里)

代码如下:

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int a[1001]={0};//初始化
 5     int n,p;
 6     scanf("%d",&n);
 7     a[1]=1;
 8     a[2]=2;
 9     for(p=3;p<=n;p++) 从三开始到n循环
10     if(p%2==1) a[p]=a[p-1];//奇数
11     else a[p]=a[p-1]+a[p/2];
12     printf("%d\n",a[n]);
13     return 0;
14 }    
时间: 2024-10-10 23:04:50

洛谷-数的计算-过程函数与递归的相关文章

洛谷-回文质数-过程函数与递归

题目描述 Description 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数; 输入输出格式 Input/output 输入格式:第 1 行: 二个整数 a 和 b .输出格式:输出一个回文质数的列表,一行一个. 输入输出样例 Sample input/output 样例测试点#1 输入样例: 5 500 输出样例: 571

过程函数与递归

P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 nn ): 先输入一个自然数 nn ( n \le 1000n≤1000 ),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入输出格式 输入格式: 11 个自然数 nn ( n \le 1000n≤1000 ) 输出格式: 11 个整数,表示具有该性质数的个数. 输入输出样例 输入样例#1

洛谷-2的次幂表示-过程函数与递归

题目描述 Description 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001. 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2+2^0  所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=2^

【洛谷P2759】奇怪的函数

x^x>=10^(n-1) lg x^x>=n-1 x*lg x>=n-1 x*(log2 x/log2 10)>=n-1 左边单调递增,二分x即可 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 using namespace std; 5 const int N=1000000000; 6 int n,l,r,mid; 7 int check(int x){ 8 if (x

wikioi天梯 1011 数的计算 (记忆化递归)

题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.          不作任何处理; 2.          在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.          加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入描述 Input Description 一个数n 输出描述 Output Description 满足条件的数的个数 样例

数式计算(递归解法)

1 /** 2 *注:1.有一个bug(以及未知什么bug) 我已知的是: ([email protected])(ps:@为运算符),这种带括号的表达式不能单独的出现,否则异常退出,,但是只要([email protected])@n 3 4 带括号的表达式出现任意+,-,*,/的运算都能进行正常运算(前面 [email protected]([email protected])也不可以)...不知道为什么()表达式后面没有操作时会异常退出. 5 *不知道如何解决.希望感兴趣的人帮帮忙! 6

(转载)你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用 5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在PowerSum()函数中,又调用Power()函数和Add()函数来计算每个数的平方并将两个平方加和起来成为最终的结果.除此之外,在C++中还存在另外一种特殊的函数调用方式,那就是在一个函数内部调用它自己本身,这种方式也被

你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在PowerSum()函数中,又调用Power()函数和Add()函数来计算每个数的平方并将两个平方加和起来成为最终的结果.除此之外,在C++中还存在另外一种特殊的函数调用方式,那就是在一个函数内部调用它自己本身,这种方式也被称为函数的递归调用. 函数的递归调用,实际上是实现函数的一种特殊方式.当递归函

洛谷OJ P1045 麦森数 解题报告

洛谷OJ P1045 麦森数 解题报告 by MedalPluS   题目描述 形如2P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2P-1不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377,它有909526位.麦森数有许多重要应用,它与完全数密切相关. 任务:从文件中输入P(1000<P<3100000),计算2P-1的位数和最后500位数字(用十进制高精度数表示)   输入描述   文件中只包含一个整数P(1000&l