洛谷-数的计算-过程函数与递归
生活随笔
收集整理的這篇文章主要介紹了
洛谷-数的计算-过程函数与递归
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述?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 }
先輸入一個自然數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 }
?
轉載于:https://www.cnblogs.com/geek-007/p/4314515.html
總結
以上是生活随笔為你收集整理的洛谷-数的计算-过程函数与递归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS定时器的使用--无缝滚动
- 下一篇: iOS GCD编程