網易筆試題 優雅的點

2021-08-28 22:47:34 字數 1030 閱讀 7291

小易有乙個圓心在座標原點的圓,小易知道圓的半徑的平方。小易認為在圓上的點而且橫縱座標都是整數的點是優雅的,小易現在想尋找乙個演算法計算出優雅的點的個數,請你來幫幫他。

例如:半徑的平方如果為25

優雅的點就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12個點。

輸入為乙個整數,即為圓半徑的平方,範圍在32位int範圍內。

輸出為乙個整數,即為優雅的點的個數

將圓分為四個部分,單個部分的點乘以4即所有點,需要注意的是x/y軸上的點,特殊處理

各個部分點計算,用下面方法求點

y = sqrt(半徑平方 - x ^ 2)

由於隱式型別轉換,只有開方的數剛好是整數,才會出現x ^ 2 + y ^ 2 == 半徑平方,說明點為優雅點

#define _crt_secure_no_warnings 1

//小易有乙個圓心在座標原點的圓,小易知道圓的半徑的平方。

//小易認為在圓上的點而且橫縱座標都是整數的點是優雅的,小易現在想尋找乙個演算法計算出優雅的點的個數,請你來幫幫他。

//例如:半徑的平方如果為25

//優雅的點就有:(+/ -3, +/ -4), (+/ -4, +/ -3), (0, +/ -5) (+/ -5, 0),一共12個點。

#include

#include

using namespace std;

intmain()

//由於計算的時候是從0統計到半徑所有點,因此x/y軸有點的話

//是重複統計了的,所以-1if(

(double

)r ==

sqrt

(num)

) count--

;//四分之一扇區乘4 == 所有點

cout << count *

4<< endl;

}return0;

}

網易有道筆試題

這幾道題都是從網上找的不知道是哪一年的網易有道的筆試題,拿來做做,練練手。1 列印如下形式的矩陣 n 5 1 2 9 10 25 4 3 8 11 24 5 6 7 12 23 16 15 14 13 22 17 18 19 20 21 n 6 1 2 9 10 25 26 4 3 8 11 24 ...

網易 筆試題(20190921)

要使得數字和達到要求並且最小,那就是剛好等於x值,即n值從後往前填充,逢9向前移一進製。def min bit sum x if x 10 return x res 0 base 1while x if x 9 res 9 base x 9else res x base x 0 base 10ret...

網易筆試題 幸運的袋子

乙個袋子裡面有n個球,每個球上面都有乙個號碼 擁有相同號碼的球是無區別的 如果乙個袋子是幸運的當且僅當所有球的號碼的和大於所有球的號碼的積。例如 如果袋子裡面的球的號碼是,這個袋子就是幸運的,因為1 1 2 3 1 1 2 3 你可以適當從袋子裡移除一些球 可以移除0個,但是別移除完 要使移除後的袋...