[Programming] Kiểm tra tính chia hết với 7 ??? |
30/09/2008 16:11:37 (+0700) | #1 | 153409 |
netbusxx
Member
|
0 |
|
|
Joined: 21/06/2008 00:59:17
Messages: 35
Offline
|
|
Bữa nọ ghi cùng topic cũ, thành thật sorry, mình muốn hỏi là: Nhập vào 1 số có số chữ số >= 15. Kiểm tra tính chia hết của số này với 7. Mình biết dấu hiệu chia hết của 7, nhưng không biết áp dụng thế nào với 1 số có số chữ số >= 15 cả. |
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
30/09/2008 22:49:24 (+0700) | #2 | 153425 |
|
pham.channhan
Member
|
0 |
|
|
Joined: 30/12/2007 23:28:22
Messages: 81
Location: Nhàcủamìnhtới
Offline
|
|
Code:
Function kiemtrachiahet($sobichia,$sochia)
{
while($i>=$sochia)
{$i=$sobichia-$sochia;
if($i==0){return 'chia hết';}
Else{return 'chia không hết, dư:'.$i;}
}
Đoạn code trên không viết bằng ngôn ngữ gì cả , nhưng mong bạn hiểu được. |
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
30/09/2008 23:41:16 (+0700) | #3 | 153432 |
|
louisnguyen27
Member
|
0 |
|
|
Joined: 12/08/2008 18:04:41
Messages: 321
Offline
|
|
1. Đem chia nó cho 7 rồi kiểm tra kết quả nó có phải là số nguyên hay không? lấy phần thập phân nhân lên cho 7 rồi làm tròn.
2. Tìm cận dưới gần nhât của nó có chia hết cho 7. Thực ra chỉ cần kiểm tra 7 số liền kề với nó.
3. Tạo vòng lặp trừ 7 liên tục đến khi kết quả nhỏ hơn 7, sẽ tạo ra số dư.
4. Nên post ở các thắc mắc thông thường và cơ bản. |
|
Q+SBtZW1iZXIgb2YgSFZ+B
Back to Linux soon!!! |
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 00:20:57 (+0700) | #4 | 153437 |
|
YHT
Member
|
0 |
|
|
Joined: 21/04/2006 13:29:33
Messages: 173
Location: HCM
Offline
|
|
louisnguyen27 wrote:
1. Đem chia nó cho 7 rồi kiểm tra kết quả nó có phải là số nguyên hay không? lấy phần thập phân nhân lên cho 7 rồi làm tròn.
2. Tìm cận dưới gần nhât của nó có chia hết cho 7. Thực ra chỉ cần kiểm tra 7 số liền kề với nó.
3. Tạo vòng lặp trừ 7 liên tục đến khi kết quả nhỏ hơn 7, sẽ tạo ra số dư.
4. Nên post ở các thắc mắc thông thường và cơ bản.
Bài này không thể giải quyết đơn giản như thế. Theo bạn thì giá trị lớn nhất của kiểu dữ liệu số trong NNLT (lấy vd C++, x86) là bao nhiêu? Nếu được xin bạn chỉ giáo bài toán tính 500!.
@netbusxx: Bạn thử tìm hiểu về giải thuật tính toán số cực lớn rồi áp dụng vào thử xem
Vd: http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=calculation+very+large+number
--YHT |
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 00:40:36 (+0700) | #5 | 153438 |
Harvestmoon
Member
|
0 |
|
|
Joined: 07/05/2004 17:14:54
Messages: 18
Offline
|
|
Dấu hiệu chia hết cho 7 của một số được tính toán trên các chữ số của nó. Vì vậy một cách tổng quát với số lớn bất kỳ, khi lập trình, ta phải coi số đó như 1 xâu hoặc 1 mảng và thao tác tính toán trên các phần tử của xâu (mảng) đó
dấu hiệu chia hết cho 7: http://www.google.com.vn/search?hl=vi&q=d%E1%BA%A5u+hi%E1%BB%87u+chia+h%E1%BA%BFt+cho+7&meta= |
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 01:25:36 (+0700) | #6 | 153443 |
|
louisnguyen27
Member
|
0 |
|
|
Joined: 12/08/2008 18:04:41
Messages: 321
Offline
|
|
|
Q+SBtZW1iZXIgb2YgSFZ+B
Back to Linux soon!!! |
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 07:56:09 (+0700) | #7 | 153474 |
anh_surprised
Member
|
0 |
|
|
Joined: 20/08/2002 04:20:12
Messages: 7
Offline
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 08:29:27 (+0700) | #8 | 153475 |
seraphpl
Member
|
0 |
|
|
Joined: 04/12/2006 19:52:12
Messages: 97
Location: xxx
Offline
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 09:45:10 (+0700) | #9 | 153483 |
FaL
Moderator
|
Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
|
|
|
Hãy giữ một trái tim nóng và một cái đầu lạnh |
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 10:22:56 (+0700) | #10 | 153486 |
seraphpl
Member
|
0 |
|
|
Joined: 04/12/2006 19:52:12
Messages: 97
Location: xxx
Offline
|
|
FaL wrote:
@seraphpl có biết dấu hiệu chia hết cho 7 này (và tương tự các dấu hiệu chia hết cho các số khác) là từ đâu ra ko?
mình mới google àh, chứ chưa chứng minh được, bạn có biết nguồn gốc của nó? |
|
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 11:18:57 (+0700) | #11 | 153492 |
FaL
Moderator
|
Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
|
|
Tui nhớ hồi học số học có phân tích các số thành tổng bội của 10 (không biết phát biểu có đúng câu chữ không, nhưng đại loại là thế ):
Code:
Từ đây nếu muốn xem chia hết cho 7 không ta trừ đi bội của 7 (có thể làm trực tiếp, nhưng thông qua bội của 10 trực quan hơn:
Code:
abc = a*98 + a*2 + b*7 + b*3 +c
abc chia hết cho 7 <=> (2a + 3b + c) chia hết cho 7.
Tuy nhiên đây không thể gọi là dấu hiệu vì nó chẳng dễ nhớ lại chẳng theo trật tự nào cả. Các dấu hiệu chia hết cho 2, cho 3, cho 5 đều rất dễ nhớ nên mới được gọi là dấu hiệu.
Làm tương tự sẽ có dấu hiệu chia hết cho 2, cho 3, cho 5, ...
chỉ là một phân tích nho nhỏ góp vui.
FaL |
|
Hãy giữ một trái tim nóng và một cái đầu lạnh |
|
|
|
[Question] Re: Kiểm tra tính chia hết với 7 ??? |
01/10/2008 11:22:38 (+0700) | #12 | 153494 |
Reversing...
Member
|
0 |
|
|
Joined: 31/12/2007 06:28:04
Messages: 117
Location: -1.-1.-1.-1
Offline
|
|
Code:
Cho a = a[k]...a[1]a[0] = a[1] + a[1]*10 + ... + a[k]*10^k (k+1 chữ số)
a | 7 <=> các số hạng | 7 <=> a[i]*10^i | 7 <=> a[i]*3^i | 7 ( 10^k = 3^k (mod 7) )
3^(k+3) = -3^k (mod 7) => chỉ cần xét 3 phần tử đầu tiên 3^0 mod 7, 3^1 mod 7 và 3^2 mod 7,
chúng lần lượt bằng 1, 3, 2.
Lúc đó 3^3 mod 7 = - 3^0 mod 7 = -1, 3^4 = -3 (mod 7), 3^5 = -2 (mod7)...
Có thể tổng quát.
|
|
|
|