Originally posted by toannv
View Post
Announcement
Collapse
No announcement yet.
Cần giúp đỡ về bài tập trên Timus
Collapse
X
-
Originally posted by 07520004 View PostCái giải phương trình bậc hai này anh có thử, sai ở test 3 (wrong answered). Dự đoán là do A = 2^31-1 mà còn *8 lên xong căn ra chắc sai số nó lớn quá
long double temp = (long double)(1.0+sqrt((long double)(8.0*t-7.0)))/2.0;
Đã AC nhờ làm như vậy...Chưa....
Comment
-
Originally posted by 08520522 View PostThì ra trong công thức này mình phải chú ý sử dụng long và đồng thời các số phải để ở dạng thập phân như thế này:
long double temp = (long double)(1.0+sqrt((long double)(8.0*t-7.0)))/2.0;
Đã AC nhờ làm như vậy...
pntruongan 1209. 1, 10, 100, 1000... C++ Accepted 0.14 448 KB
Comment
-
Trước hết là nhìn thấy [1][10][100][1000][....] có quy luật dạng n(n+1)/2 => ta cần tìm 1 con số n lớn nhất thỏa n(n+1)/2 < k => n^2 + n - 2k < 0 (với n max) => delta = 1^2 - 4 (1)(-2k) = 1 + 8 k => nghiệm là (-1 + sqrt(1 + 8k)) / 2 (không lấy nghiệm âm => không trừ delta được).
Ở đây nhận thấy: k <= 2^31 - 1 => giới hạn integer => 8 * k > giới hạn integer 32 bit=> phải dùng 1 thứ gì đó chứa được 8k như: double,long double, long long int (int64 bit)
======== nói chung mình chỉ viết tóm tắt lại những gì các bạn đã thảo luận thôiLast edited by 09520019; 28-05-2011, 21:41.Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?
Comment
-
Originally posted by 09520019 View PostTrước hết là nhìn thấy [1][10][100][1000][....] có quy luật dạng n(n+1)/2 => ta cần tìm 1 con số n lớn nhất thỏa n(n+1)/2 < k => n^2 + n - 2k < 0 (với n max) => delta = 1^2 - 4 (1)(-2k) = 1 + 8 k => nghiệm là (-1 + sqrt(1 + 8k)) / 2 (không lấy nghiệm âm => không trừ delta được).
Ở đây nhận thấy: k <= 2^31 - 1 => giới hạn integer => 8 * k > giới hạn integer 32 bit=> phải dùng 1 thứ gì đó chứa được 8k như: double,long double, long long int (int64 bit)
======== nói chung mình chỉ viết tóm tắt lại những gì các bạn đã thảo luận thôi
double temp;
cin >> temp;
temp = (sqrt(8*temp-7)-1)/2;
if (temp == (long)temp) cout << "1 "; else cout << "0 ";
======>vừa nhập vừa knockout nó luôn.
Comment
-
Originally posted by minhhung1122 View Posthaha bài thế mà làm không được hả, haizzz, sắp thi olympic rồi
để gợi ý cho
các số 1 xuất hiện ở vị trí sau 0,1,3,6,10,15,21,... tự tìm công thức đi(nếu không biết ngày thứ 4 tới cần thơ, Cho xem thuật toán
kaka, cần thơ thẳng tiến thôiKhoảng cách giữa bạn và ước mơ của bạn là bao xa ?
Comment
-
Originally posted by minhhung1122 View Posthaha bài thế mà làm không được hả, haizzz, sắp thi olympic rồi
để gợi ý cho
các số 1 xuất hiện ở vị trí sau 0,1,3,6,10,15,21,... tự tìm công thức đi(nếu không biết ngày thứ 4 tới cần thơ, Cho xem thuật toán
kaka, cần thơ thẳng tiến thôi
Comment
Comment