Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
[Event Code siêu Quà khủng] Hình vuông trong hình tròn của hình vuông (há há)
Yêu cầu [Ngôn ngữ bất chấp tất cả]:
Input: chỉ số N
- N tương ứng với kích thước của hình vuông NxN.
- Sẽ là kết hợp từ nhiều hình vuông nhỏ với kích thước 1x1
Output: Số lượng hình vuông hoàn chỉnh bên trong hình tròn tâm là (N/2, N/2) bán đường kính N-1
Ví dụ như hình
https://drive.google.com/open?id=0ByMJQK_piCYibzNweDlwbEI4Wkk
Với N = 4
thì output sẽ là 4
-------------------------------------------------------------------------------------------------------------------------------------
Event hôm nay sẽ kết thúc vào 20h ngày 13/04/2017
Chỉ chấp nhận câu trả lời là code được dán và phần bình luận.
Code phải chạy tốt trên trình biên dịch online như http://ideone.com/
Câu trả lời chính xác và sớm nhất sẽ giành được một phần quà là khóa học online tính phí tùy chọn trong danh sách sẽ được đưa ra.
Kteam sẽ liên hệ với người chiến thắng để trao giải và công bố public tại phần bình luận của event và trong fanpage www.facebook.com/howkteam
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main(String[] args) {
for (int i = 3; i < 100; i++) {
System.out.println("N = " + i + " => Output: " + calc(i));
}
}
public static int calc(int n) {
//result
int output = 0;
//calculate
if (n > 3) {
//su dung bien tam thay cho n
int temp = n;
//n la so le thi giam temp 1
if (n % 2 == 1) {
temp--;
}
int main = ((temp - 1) / 2 - 1) * 2;
double bonus = ((double) temp - 1) / 2 / Math.sqrt(2);
//1/4 result
output = (int) (main + bonus) * 4;
//n la so le thi output tang them 1
if (n % 2 == 1) {
output += 1;
}
}
return output;
}
}