UVA 11549(計算器謎題)

2021-07-10 05:48:19 字數 502 閱讀 9817

題意:

有個老式計算器,只能顯示n位數字。現在輸入乙個整數k,然後反覆平方,一直做下去,能得到的最大數是多少。例如,n=1,k=6,那麼一次顯示:6,3,9,1…

演算法:floyd判圈演算法;

ac**:

#include

#include

#include

using

namespace

std;

int fun(int n,int k);

int a[22];

int main()

while(k1!=k2);

cout

<< ans int fun(int n,int k)

int ans=0;

n=min(n,i);

for(int j=i-1;j>=i-n;j--)

ans=ans*10+a[j];

return ans;

}

UVA11549計算器謎題

題意 有乙個計算機只能保留數字的前n位,你有乙個數字k k 9 反覆平方後在計算機上顯示的最大數字是多少。思路 顯然這個題目是有迴圈節的,為什麼有迴圈節?首先我們看下k 9那麼也就是說所有的答案都是9位數之內的,也就是說才幾億唄,最慢幾億次之後必然迴圈啊,這樣我們就可以不停得列舉,然後碰到迴圈節的時...

UVA 11549 計算器謎題(floyd判圈)

題目 可以想成兩個小孩,乙個小孩去追另乙個小孩,這個小孩是那個小孩的幾倍速度都沒有關係,若跑著跑著突然出現了乙個迴圈圈,那麼快的小孩一定可以套慢的小孩的圈,直到某一刻追上。此方法可以省去stl中的set,使得空間開銷變小。includeusing namespace std int buf 100 ...

實現計算器

dim boldot as boolean dim dblacc1,dblacc2 as double dim dblacc3 as double 10 dim strop as string private sub add num byval intnumber as integer if bol...