数的计算

/*
题目描述 Description
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1.          不作任何处理;
2.          在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3.          加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入描述 Input Description
一个数n
输出描述 Output Description
满足条件的数的个数
样例输入 Sample Input
6
样例输出 Sample Output
6
数据范围及提示 Data Size & Hint
6个数分别是:
6
16
26
126
36
136
*/
#include<iostream>
using namespace std;
int array[]={1,1,2,2,4,4,6,6,10,10,14,14,20,20,26,26,36,36};
//求满足条件的个数
int ems(int m){
	if(m<=17){
		return array[m];
	}
	int sum(0);
	for(int i=0;i<=m/2;i++){ //对每一项都进行求和
		//递归
		sum+=ems(i);
	}
	return sum;
}

int main(){
	int n;
	cin>>n; 
	cout<<ems(n)<<endl;;
	return 0;
}

阅读更多
个人分类: C++ 练习 算法练习
想对作者说点什么? 我来说一句

MATLAB 数据点相关性计算

2010年03月14日 1KB 下载

线管,线槽,线缆根数计算

2011年07月22日 38KB 下载

FractalDim计算计盒维数

2013年05月23日 1KB 下载

计算差分盒维数的matlab程序

2009年06月22日 929B 下载

分形维数的计算

2012年04月12日 142KB 下载

一个零数计算

2013年11月15日 24KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭