1. 程式人生 > >P1028 數的計算(洛谷)

P1028 數的計算(洛谷)

P1028 數的計算

題目描述

我們要求找出具有下列性質數的個數(包含輸入的自然數n):

先輸入一個自然數n(n<=1000),然後對此自然數按照如下方法進行處理:

1.不作任何處理;

2.在它的左邊加上一個自然數,但該自然數不能超過原數的一半;

3.加上數後,繼續按此規則進行處理,直到不能再加自然數為止.

輸入輸出格式

輸入格式:

一個自然數n(n<=1000)

輸出格式:

一個整數,表示具有該性質數的個數。

輸入輸出樣例

輸入樣例#1:
6
輸出樣例#1:
6

說明

滿足條件的數為

6,16,26,126,36,136

程式碼:

一題簡單的遞迴....

#include<iostream>
#include<cstdio>
using namespace std;
int n,k=0;//k是記錄方案總數;
void js(int a);//遞迴函式;
int main()
{
	scanf("%d",&n);
	js(n);
	printf("%d",k);
	return 0;
}
void js(int a)
{
	k++;
	if(a==1) return ;//a==1時返回主函式(結束);
	for(int i=1;i<=a/2;i++)//下一個數不能超過前一個數的一半;
	js(i);//遞迴
}