1. 程式人生 > >毛學姐大戰學渣(18.11.28)

毛學姐大戰學渣(18.11.28)

毛學姐大戰學渣

Description

又到了毛學姐屠殺學渣的時候了,學渣根據實力不同從 Lv1 依次向上提升,毛學姐每屠殺一個學渣就會不斷地提升自己的實力,從而挑戰更高等級的學渣,他按照這樣的方式屠殺學渣:1,1,2,1,1,1,3,1,1,1,1,4,1,1,1,1,1,5…1,1,2,1,1,1,3,1,1,1,1,4,1,1,1,1,1,5…1,1,2,1,1,1,3,1,1,1,1,4,1,1,1,1,1,5… 第一二天他屠殺2個Lv1的學渣,然後第三天能夠屠殺一個LV2的學渣,接下來,毛學姐再殺3個LV1的學渣【為了恢復體力】,然後殺死一個LV3的學渣,如此往復。但是毛學姐數學不好,殺著殺著就忘了今天該輪到等級多少的學渣了,請你幫他計算一下。

Input

有多組測試樣例。輸入一個正整數數NNN,代表要殺的第NNN個學渣。(0<N<100000)

Output

輸出第NNN個學渣的等級

Sample Input 1

1
18
####Sample Output 1
1
5

這道題沒啥意思…就是需要額外定義一個變數就好了,很簡單的一題

程式碼:

#include<stdio.h>
int main()
{
    int a,i;
    while(scanf("%d",&a)!=EOF)
    {
        if(a==1)
            printf("1\n");
        else
        {
            i=2;  //定義變數,代表每次要殺的LV1的學渣
            while(a>0)
            {
                a-=1;  //注意每次把高階的學渣也減掉
                a-=i;
                i+=1;   //注意對i遞增
            }
            if(a==0)   //如果正好減完那麼代表正好在高階學渣那
                printf("%d\n",i-1);  //i額外多加了一次1 減掉即可
            else   //如果減完小於零,則證明此時處在低階學渣那,直接輸出1就行
                printf("%d\n",1);
        }
    }
    return 0;
}