【百度之星邀請月賽12月11號競賽題目一】du熊學斐波那契I

來源:互聯網
上載者:User

Problem Description

du熊對數學一直都非常感興趣。最近在學習斐波那契數列的它,向你展示了一個數字串,它稱之為“斐波那契”串:

11235813471123581347112358........

聰明的你當然一眼就看出了這個串是這麼構造的:

1.先寫下兩位在0~9範圍內的數字a, b,構成串ab;

2.取串最後的兩位元字相加,將和寫在串的最後面。

上面du熊向你展示的串就是取a = b = 1構造出來的串。

顯然,步驟1之後不停地進行步驟2,數字串可以無限擴充。現在,du熊希望知道串的第n位是什麼數字。

Input

輸入資料的第一行為一個整數T(1 <= T <= 1000), 表示有T組測試資料;

每組測試資料為三個正整數a, b, n(0 <= a, b < 10, 0 < n <= 10^9)。

Output

對於每組測試資料,輸出一行“Case #c: ans”(不包含引號) 

c是測試資料的組數,從1開始。

Sample Input

3

1 1 2

1 1 8

1 4 8

Sample Output

Case #1: 1

Case #2: 3

Case #3: 9

這個題比賽的時候想複雜了,開始用了個字串加斐波那契數的模板,結果STRING技術不到家,死活不出數。。。後來,發現簡單的類比就能過。。。最近總是把各種簡單類比想複雜。。

因為加起來無非就是兩種情況(確切來說是三種):

1、A,B都是0,OK 全是0

2、A,B加起來的是一位元,這樣,A=原來的B,B=加起來的和。

3、A,B加起來的是兩位元,這樣,A=1(兩個一位元加起來一定是十幾),B=和-10.

很簡單的幾行,讓我想了許久,ORZ...

#include <iostream>#include <string>#include <stdio.h>using namespace std;int main(){int a,b,c;int n,tar;char res;cin>>tar;for(int w=1;w<=tar;w++){string searchpack;cin>>a>>b>>c;if(a==0 && b==0){res='0';}searchpack+=(a+'0');searchpack+=(b+'0');for(int i=0;i<=c;i++){int tmp=a+b;if(tmp>=10){searchpack+='1';int songshu=tmp-10;searchpack+=(songshu+'0');a=1;b=songshu;}if(tmp<10){a=b;b=tmp;searchpack+=(tmp+'0');}}//cout<<searchpack<<endl;cout<<"Case #"<<w<<":"<<searchpack[c-1]<<endl;}return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.