P1028 數的計算(洛谷)
阿新 • • 發佈:2019-01-26
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);//遞迴
}