Forum Smadav
Teknologi Komputer dan Internet => Programming => Topik dimulai oleh: Zai pada Juli 19, 2011, 09:31:03 AM
-
Kuis ke-2, kali ini coding yang sedikit lebih berat & diperlukan sedikit pemahaman matematika dasar yang pastinya udah diketahui oleh kebanyakan programmer/computer scientist, semangat :-bd
Prize : 10 Key Smadav Pro.
Soal :
(http://smadaver.com/programming/(kuis)-tes-skill-codingmu-2!/?action=dlattach;attach=9036;image)
Translate :
Misalkan ada 4 angka positif yang berbeda yaitu a1, a2, a3, a4. Jika hasil jumlahannya sA = a1+a2+a3+a4, misalkan ada 6 pasangan bilangan : a1+a2, a1+a3, a1+a4, a2+a3, a2+a4, a3+a4. nA adalah banyaknya dari 6 bilangan ini yang habis membagi sA. Cari semua 4 angka a1, a2, a3, a4 yang mempunyai nilai nA terbesar.
Contohnya :
Misalkan a1, a2, a3, a4 = 1,2,3,6
sA = 1+2+3+6 = 12
1+2 = 3 habis membagi 12
1+3 = 4 habis membagi 12
1+6 = 7 tidak habis membagi 12
2+3 = 5 tidak habis membagi 12
2+6 = 8 tidak habis membagi 12
3+6 = 9 tidak habis membagi 12
Jadi nA = 2.
Sekarang cari semua kemungkinan a1, a2, a3, a4, yang menghasilkan nA terbesar yang mungkin.
-
Pusying angka terus.
:pusing:
-
Pusying angka terus.
:pusing:
wkwkkwkw :D
kalo soal virus yuk mari ya <=)
(http://smadaver.com/programming/(kuis)-tes-skill-codingmu-2!/?action=dlattach;attach=9036;image)
Jika ada yang meminta, soal bisa saya translate-kan ke Bahasa Indonesia. :D
Translate in donk ^:)^
mau diskusi ma teman neh :)
-
(http://smadaver.com/programming/(kuis)-tes-skill-codingmu-2!/?action=dlattach;attach=9036;image)
Jika ada yang meminta, soal bisa saya translate-kan ke Bahasa Indonesia. :D
Translate in donk ^:)^
mau diskusi ma teman neh :)
Cek di-atas, sudah saya translate ke bahasa yang lebih mudah :D
-
kodingnya pke apa ?
cuma logika aja kah ? :-\
susahnye ~x(
-
wah soal olimpiade yang masih anget :D
yang ikut olimpiade aja blm tentu bisa apalagi saya :'(
-
kodingnya pke apa ?
cuma logika aja kah ? :-\
susahnye ~x(
Logika aja kok.
Nanti saya post source-code (C++) saya biar bisa didiskusikan dan dicek klo itu cuma logika :D
wah soal olimpiade yang masih anget :D
yang ikut olimpiade aja blm tentu bisa apalagi saya :'(
Kok tau? Pengamat olimp. math juga ya? :)
Bukti analitiknya (pure math) memang luar biasa sulit. :-\ Tapi mudah kalau cuma dibuktikan pakai program. :D
-
Hmm . . .
Ijin mikir :-\ :-\ dan coba codingnya :D :D yah master \m/ \m/
Semoga aja bisa ;> ;>
-
tambah puyeng dehhh.... :)
-
ikut simak dan memecahkan jawabannya bro :D
soalnya logika sama kaya olimpiade pascal ;D ;D
-
Nyerah deh... Dilihat dari contoh yg dikasih mas Zai, hasil jumlah dari ke 4 (sA) angka lebih kecil dari 2 kali hasil jumlah 2 angka terbesar (nA) bagaimana sA bisa habis dibagi nA sedangkan hasih dari 2nA>sA
-
ahhh nyerah deh, cuma bisa brute-force :'( (yang sebenernya ga ada ilmunya :'()
[spoiler=solusi]nA = 4
{ 1, 5, 7, 11 }
{ 1, 11, 19, 29 }
{ 2, 10, 14, 22 }
Private Function Solusi(Optional ByRef MaxCoba As Long = 30) As String
Dim i As Long
Dim j As Long
Dim k As Long
Dim l As Long
Dim iLast As Long
Dim iNow As Long
Const KomaSpasi As String = ", "
For i = 1 To MaxCoba
For j = i + 1 To MaxCoba
For k = j + 1 To MaxCoba
For l = k + 1 To MaxCoba
iNow = nA(i + j + k + l, i, j, k, l)
If iNow > iLast Then
iLast = iNow
Solusi = "nA = " & iLast & vbNewLine & _
"{ " & i & KomaSpasi & j & KomaSpasi & _
k & KomaSpasi & l & " }" & vbNewLine
ElseIf iNow = iLast Then
Solusi = Solusi & _
"{ " & i & KomaSpasi & j & KomaSpasi & _
k & KomaSpasi & l & " }" & vbNewLine
End If
Next l
Next k
Next j
Next i
End Function
Private Function nA(ByRef sA As Long, ParamArray Elemen() As Variant) As Long
Dim i As Long
Dim j As Long
For i = 0 To UBound(Elemen) - 1
For j = i + 1 To UBound(Elemen)
If sA Mod (Elemen(i) + Elemen(j)) = 0 Then nA = nA + 1
Next j
Next i
End Function
[/spoiler]
masih ga terlalu yakin
silahan mas zai aja deh yang menjawab :D
-
ketemu gan ini hasil koding saya pake c++
#include <iostream>
#include <string.h>
using namespace std;
void main()
{
int an[4];
int sa, i, j, hasil = 0;
int cur;
printf("Masukan A1-A4\n");
scanf("%d %d %d %d", &an[0], &an[1], &an[2], &an[3]);
sa = an[0] + an[1] + an[2] + an[3];
for (i = 0; i != 4; i++) {
j = i + 1;
for (; j < 4; j++) {
cur = sa % (an + an[j]);
if (cur == 0) {
hasil += 1;
}
}
}
printf("nA = %d", hasil);
}
-
@Rdion
Sudah mendekati jawabannya :D
Tapi dalam kode diatas, array an yang menyatakan nilai {a1, a2, a3, a4} masih perlu di-input kan? :D
Perlu sedikit diperbaiki kode-nya, agar nilai {a1, a2, a3, a4} bisa di-generate agar semua kemungkinan himpunan nilai {a1, a2, a3, a4} yang merupakan integer yang berbeda, dapat semuanya dianalisa, sehingga diperoleh nilai nA terbesar.
-
Jadi mas zai a1 s/d a4 itu di dihasilkan, bukan di input?
-
Jadi mas zai a1 s/d a4 itu di dihasilkan, bukan di input?
Ya, dihasilkan untuk semua kemungkinan himpunan {a1,a2,a3,a4}
-
a1 - a4 gak boleh sama ???
1 . 1 . 1 . 1 getuh ??
-
a1 - a4 gak boleh sama ???
1 . 1 . 1 . 1 getuh ??
Ya, ini contoh output-nya, kalau dibatas ai <= 8, disebelah kanan panah itu adalah nA. Karena ai masih terlalu kecil, hasil ini belum meyakinkan untuk dapat nA terbesar. a1 harus diperbesar lagi, di code saya ai <= 400 :D
1+2+3+4=10 -> 2
1+2+3+5=11 -> 0
1+2+3+6=12 -> 2
1+2+3+7=13 -> 0
1+2+3+8=14 -> 0
1+2+4+5=12 -> 3
1+2+4+6=13 -> 0
1+2+4+7=14 -> 0
1+2+4+8=15 -> 2
1+2+5+6=14 -> 2
1+2+5+7=15 -> 1
1+2+5+8=16 -> 0
1+2+6+7=16 -> 2
1+2+6+8=17 -> 0
1+2+7+8=18 -> 3
1+3+4+5=13 -> 0
1+3+4+6=14 -> 2
1+3+4+7=15 -> 1
1+3+4+8=16 -> 1
1+3+5+6=15 -> 0
1+3+5+7=16 -> 3
1+3+5+8=17 -> 0
1+3+6+7=17 -> 0
1+3+6+8=18 -> 2
1+3+7+8=19 -> 0
1+4+5+6=16 -> 0
1+4+5+7=17 -> 0
1+4+5+8=18 -> 3
1+4+6+7=18 -> 0
1+4+6+8=19 -> 0
1+4+7+8=20 -> 1
1+5+6+7=19 -> 0
1+5+6+8=20 -> 0
1+5+7+8=21 -> 0
1+6+7+8=22 -> 0
2+3+4+5=14 -> 2
2+3+4+6=15 -> 1
2+3+4+7=16 -> 0
2+3+4+8=17 -> 0
2+3+5+6=16 -> 2
2+3+5+7=17 -> 0
2+3+5+8=18 -> 0
2+3+6+7=18 -> 2
2+3+6+8=19 -> 0
2+3+7+8=20 -> 3
2+4+5+6=17 -> 0
2+4+5+7=18 -> 3
2+4+5+8=19 -> 0
2+4+6+7=19 -> 0
2+4+6+8=20 -> 2
2+4+7+8=21 -> 0
2+5+6+7=20 -> 0
2+5+6+8=21 -> 1
2+5+7+8=22 -> 0
2+6+7+8=23 -> 0
3+4+5+6=18 -> 2
3+4+5+7=19 -> 0
3+4+5+8=20 -> 0
3+4+6+7=20 -> 2
3+4+6+8=21 -> 1
3+4+7+8=22 -> 2
3+5+6+7=21 -> 0
3+5+6+8=22 -> 2
3+5+7+8=23 -> 0
3+6+7+8=24 -> 0
4+5+6+7=22 -> 2
4+5+6+8=23 -> 0
4+5+7+8=24 -> 2
4+6+7+8=25 -> 0
5+6+7+8=26 -> 2
-
ketemu gan ini hasil koding saya pake c++
#include <iostream>
#include <string.h>
using namespace std;
void main()
{
int an[4];
int sa, i, j, hasil = 0;
int cur;
printf("Masukan A1-A4\n");
scanf("%d %d %d %d", &an[0], &an[1], &an[2], &an[3]);
sa = an[0] + an[1] + an[2] + an[3];
for (i = 0; i != 4; i++) {
j = i + 1;
for (; j < 4; j++) {
cur = sa % (an + an[j]);
if (cur == 0) {
hasil += 1;
}
}
}
printf("nA = %d", hasil);
}
ini sudah jawab sebenarnya, perlu benahi input saja.
cuman sintax [ i ] gak bs muncul di forum,,
jadinya
cur = sa % (an + an[j]);
harusnya
cur = sa % (an[i] + an[j]);
boz zai, kapan spoiler ditambahkan ??
-
ini sudah jawab sebenarnya, perlu benahi input saja.
cuman sintax [ i ] gak bs muncul di forum,,
jadinya
cur = sa % (an + an[j]);
harusnya
cur = sa % (an[i] + an[j]);
boz zai, kapan spoiler ditambahkan ??
Ya, tapi itu hanya untuk generate nilai pembagi (a1+a2, a1+a3, a1+a4, a2+a3, a2+a4, a3+a4)
Nilai sA juga harus di-generate dengan cara generate himpunan (a1,a2,a3,a4), bukan dengan di-input :)
Spoiler? Kan sudah ada nih :
[spoiler] :D[/spoiler]
-
[spoiler]hahaa,, gak liat Sp ,, maap OOT dikit[/spoiler]
-
Ini hubungannya tentang kode atau Matematika? Pusing sangat..
-
Nanti akan saya post jawabannya di C++ :D
-
Ijin Nyimak aja dach :D
ga sanggup mikir ;D =)) =))
-
nih pakek vb dijamin dinamis mo sampe berapa data pun, semoga menang :-[
Module Module1
Dim xJumlah As Integer = 0
Dim xTotal As Integer = 0
Dim xtemp As Integer = 0
Dim xtemp2 As Integer = 0
Dim xNa As Integer = 0
Sub Main()
While xJumlah <= 0
Console.Write("masukkan jumlah bilangan" & vbTab & ": ")
xJumlah = Console.ReadLine()
End While
Dim xContTemp(xJumlah - 1) As Integer
For i As Integer = 0 To xJumlah - 1
Console.Write("masukkan angka" & vbTab & ": ")
xtemp = Console.ReadLine()
xTotal += xtemp
xContTemp(i) = xtemp
Next
Console.WriteLine()
Console.Write("sA " & xTotal)
Console.WriteLine()
Console.WriteLine()
For i As Integer = 0 To xContTemp.Length - 1
Console.WriteLine("a" & i + 1 & " " & xContTemp(i))
Next
Console.WriteLine()
For i As Integer = 0 To xContTemp.Length - 1
For u As Integer = i + 1 To xContTemp.Length - 1
xtemp2 = xContTemp(i) + xContTemp(u)
If xTotal Mod xtemp2 = 0 Then
Console.Write(xContTemp(i) & " + " & xContTemp(u) & " = " & xContTemp(i) + xContTemp(u) & " habis membagi " & xTotal)
Console.WriteLine()
xNa += 1
End If
Next
Next
Console.WriteLine("jadi Na = " & xNa)
End Sub
End Module
screenshot
(http://i51.tinypic.com/243q6o3.png)
-
sebenernya ane dah buat code nya dulu cuma ga di save ini cuma pake fungsi Mod buat kondisi pembagian yang habis
juga make variabel ber array
-
Ini Yang Udah Di Perbaiki Kodenya:
#include <stdlib.h>
#include <iostream>
#include <windows.h>
using namespace std;
int An[] = {1, 2, 3, 6};
int BesarNa(int &);
void Roll();
int BesarNa(int &Jum)
{
int *p = An;
int jumlah = 0, i, j, ret = 0;
for (i = 0; i < 4; i++) jumlah += *(p+i);
Jum = jumlah;
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 4; j++) {
if ((jumlah % (*(p+i) + *(p+j))) == 0) ret += 1;
}
}
return ret;
}
void Roll()
{
int *p = An;
int r, i, j;
r = (((GetTickCount() & 0xFFFFFFFF) & 0xFFFF) ^ 0xFF) & 3;
*(p+r) += 1;
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 4; j++) {
if (*(p+i) == *(p+j)) {
*(p+i) += 1;
*(p+j) -= 1;
}
}
}
}
int main()
{
int c;
for (c = 0; c < 400; c++) {
int j;
int Besar = BesarNa(j);
cout << An[0] << "+" << An[1] << "+" << An[2] << "+" << An[3] << "=" << j << "->" << Besar << endl;
Roll();
}
}
-
algoritma gw jelek gan......kbnyakan ngelamun...jd jelek deh logika nya!! ^-^ ^-^
-
mas batasannya a1, a2, a3, a4 berapa?
-
wakwakwak, gan blom bisa coding, gila manteb dah soalnya
-
matematika ga lulus gan..
coding lg
-
Kuis ke-2, kali ini coding yang sedikit lebih berat & diperlukan sedikit pemahaman matematika dasar yang pastinya udah diketahui oleh kebanyakan programmer/computer scientist, semangat :-bd
Prize : 10 Key Smadav Pro.
Soal :
(http://smadaver.com/programming/(kuis)-tes-skill-codingmu-2!/?action=dlattach;attach=9036;image)
Translate :
Misalkan ada 4 angka positif yang berbeda yaitu a1, a2, a3, a4. Jika hasil jumlahannya sA = a1+a2+a3+a4, misalkan ada 6 pasangan bilangan : a1+a2, a1+a3, a1+a4, a2+a3, a2+a4, a3+a4. nA adalah banyaknya dari 6 bilangan ini yang habis membagi sA. Cari semua 4 angka a1, a2, a3, a4 yang mempunyai nilai nA terbesar.
Contohnya :
Misalkan a1, a2, a3, a4 = 1,2,3,6
sA = 1+2+3+6 = 12
1+2 = 3 habis membagi 12
1+3 = 4 habis membagi 12
1+6 = 7 tidak habis membagi 12
2+3 = 5 tidak habis membagi 12
2+6 = 8 tidak habis membagi 12
3+6 = 9 tidak habis membagi 12
Jadi nA = 2.
Sekarang cari semua kemungkinan a1, a2, a3, a4, yang menghasilkan nA terbesar yang mungkin.
sA = 3+5+7+9 = 24
3+5 = 8 habis membagi 24
3+7 = 10 tidak habis membagi 24
3+9 = 12 habis membagi 24
5+7 = 12 habis membagi 24
5+9 = 14 tidak habis membagi 24
7+9 = 16 tidak habis membagi 24
Jadi nA = 3. ???
-
matrik kadang nie...?
atau pa...?
-
<?php
$n = 5;
$data = range(1, 9);
$rand = array_rand($data,$n);
for($i=1; $i < $n; $i++)
{
$a1=$rand[1];
$a2=$rand[2];
$a3=$rand[3];
$a4=$rand[4];
//echo $sa=$a1+$a2+$a3+$a4;
}
echo "Angka yg digenerate dengan merefresh browser =>> [ $a1, $a2, $a3, $a4 ]<br>";
$sa=$a1+$a2+$a3+$a4;
echo "Sa =>> $sa = $a1 + $a2 + $a3 + $a4 <br>";
$na1=$a1+$a2; $hsl1=$sa % $na1;
if($hsl1==0){$hasilbagi = "Habis Membagi";}else {$hasilbagi = "Tidak Habis Membagi";}
echo "$a1 + $a2 = $na1 =>> $hasilbagi $sa hasilnya =>> [".$sa % $na1."]<br>";
$na2=$a1+$a3;
$hsl2=$sa % $na2;
if($hsl2==0){$hasilbagi2 = "Habis Membagi";}else {$hasilbagi2 = "Tidak Habis Membagi";}
echo "$a1 + $a3 = $na2 =>> $hasilbagi2 $sa hasilnya =>> [".$sa % $na2."]<br>";
$na3=$a1+$a4;
$hsl3=$sa % $na3;
if($hsl3==0){$hasilbagi3 = "Habis Membagi";}else {$hasilbagi3 = "Tidak Habis Membagi";}
echo "$a1 + $a4 = $na3 =>> $hasilbagi3 $sa hasilnya =>> [".$sa % $na3."]<br>";
$na4=$a2+$a3;
$hsl4=$sa % $na4;
if($hsl4==0){$hasilbagi4 = "Habis Membagi";}else {$hasilbagi4 = "Tidak Habis Membagi";}
echo "$a2 + $a3 = $na4 =>> $hasilbagi4 $sa hasilnya =>> [".$sa % $na4."]<br>";
$na5=$a2+$a4;
$hsl5=$sa % $na5;
if($hsl5==0){$hasilbagi5 = "Habis Membagi";}else {$hasilbagi5 = "Tidak Habis Membagi";}
echo "$a2 + $a4 = $na5 =>> $hasilbagi5 $sa hasilnya =>> [".$sa % $na5."]<br>";
$na6=$a3+$a4;
$hsl6=$sa % $na6;
if($hsl6==0){$hasilbagi6 = "Habis Membagi";}else {$hasilbagi6 = "Tidak Habis Membagi";}
echo "$a3 + $a4 = $na6 =>> $hasilbagi6 $sa hasilnya =>> [".$sa % $na6."]<br>";
?>
jika dijalankan via browser akan menghasilkan ouput/tampilan spt ini:
Angka yg digenerate dengan merefresh browser =>> [ 3, 5, 6, 8 ]
Sa =>> 22 = 3 + 5 + 6 + 8
3 + 5 = 8 =>> Tidak Habis Membagi 22 hasilnya =>> [6]
3 + 6 = 9 =>> Tidak Habis Membagi 22 hasilnya =>> [4]
3 + 8 = 11 =>> Habis Membagi 22 hasilnya =>>
5 + 6 = 11 =>> Habis Membagi 22 hasilnya =>>
5 + 8 = 13 =>> Tidak Habis Membagi 22 hasilnya =>> [9]
6 + 8 = 14 =>> Tidak Habis Membagi 22 hasilnya =>> [8]
benerga ya? Na nya berapa ya, gatau masalah matematika,...buta niiiii matematika
-
Ini kan soal IMO taun 2011 -__-
-
Kebanyakan baru menjawab kasus-kasus tertentunya, belum secara general ya :D
-
hahahaha................
pusing saya... ;D
-
mas Zai, jawaban saya bener ga ?
-
Sory numpang lewat....[spoiler]Mo ngikut jawab matematik dapet 0 besar mendingan simak aja apa kata bos besar[/spoiler]
-
huh rada rada susah itu mah. logika and coding nya tinggi banget
-
pusing gan..gada kisi2nya yah tuh gan buat jadi lebih gampangnya gitu :D
-
ternyata lebih mudah bongkar pasang komputer.
-
Private Function Calc(bVal As String)
Dim b1() As String, s() As String, jml As Long, h As Integer, m As Long
ReDim s(0)
jml = 0
b1 = Split(bVal, ",")
For b = 0 To UBound(b1)
jml = Val(jml) + Val(b1(b))
Next
For c = 0 To UBound(b1)
If c = UBound(b1) Then Exit For
For k = 0 To UBound(b1) - c
If k > 0 Then
m = Val(b1(c)) + Val(b1(UBound(b1) - k + 1))
h = jml Mod m
If h = 0 Then ReDim Preserve s(UBound(s) + 1): s(UBound(s) - 1) = jml & " / " & m & " = " & jml / m
End If
Next
Next
For i = 0 To UBound(s) - 1
MsgBox s(i)
Next
Calc = UBound(s)
End Function
untuk pemanggilan fungsi misal kita sesuaikan dengan contoh: 1,2,3,6
MsgBox "jadi banyaknya yang habis dibagi adalah: " & Calc("1,2,3,6")
CODING YANG SAYA BUAT SUDAH 100% TEPAT CMIIW
jadi tinggal panggil fungsi aja calc("1,2,3,4,5,6,7,8,9,10,11,12,13,14,20") sampe 100 angka juga bisa
-
what the ****
pusing gan :D
-
#include<stdio.h>
#include<conio.h>
main()
{
int sym[4];
int Na;
int arr[20];
int counter = 0;
scanf("%d",&sym[0]);
scanf("%d",&sym[1]);
scanf("%d",&sym[2]);
scanf("%d",&sym[3]);
Na = sym[0] + sym[1] + sym[2] + sym[3];
printf("hasil = %d",Na);
// int hasil[2];
int hasil, biggest;
int itung=0;
for (int a=0 ; a<4 ; a++)
{
for (int b = a+1 ; b<4 ; b++ ){
arr[counter] = sym[a] + sym;
counter++;
}
}
for (int c =0 ; c<6 ; c++)
{
hasil = Na % arr[c];
printf("\n %d",hasil);
if(hasil==0)
itung++;
}
printf("\n hasil yang dapat membagi habis berjumlah = %d ", itung);
getch();
}
-
revisi dari coding azmitcits..
batas nilai bisa ditentukan..
asumsi Na terbesar=4..
semoga bisa membantu.. :)
#include<stdio.h>
#include<conio.h>
void philip(int sym[3])
{
int Na;
int arr[20];
int counter=0;
int hasil=0;
int itung=0;
Na = sym[0] + sym[1] + sym[2] + sym[3];
for (int a=0 ; a<4 ; a++)
{
for (int b = a+1 ; b<4 ; b++ )
{
arr[counter] = sym[a] + sym;
counter++;
}
}
for (int c =0 ; c<6 ; c++)
{
hasil = Na % arr[c];
if(hasil==0)
itung++;
}
if(itung==4)
{
printf("%d+%d+%d+%d=%d",sym[0],sym[1],sym[2],sym[3],Na);
printf(" => %d\n", itung);
}
}
main()
{
int sym[4];
int batas;
printf("Batas nilai output?");
scanf("%d",&batas);
for(int i=1;i<=batas;i++)
{
sym[0]=i;
for(int j=sym[0]+1;j<=batas;j++)
{
sym[1]=j;
for(int k=sym[1]+1;k<=batas;k++)
{
sym[2]=k;
for(int l=sym[2]+1;l<=batas;l++)
{
sym[3]=l;
philip(sym);
}
}
}
}
getch();
}
-
pusing gan. ???
-
Kuis ke-2, kali ini coding yang sedikit lebih berat & diperlukan sedikit pemahaman matematika dasar yang pastinya udah diketahui oleh kebanyakan programmer/computer scientist, semangat :-bd
Prize : 10 Key Smadav Pro.
Soal :
(http://smadaver.com/programming/(kuis)-tes-skill-codingmu-2!/?action=dlattach;attach=9036;image)
Translate :
Misalkan ada 4 angka positif yang berbeda yaitu a1, a2, a3, a4. Jika hasil jumlahannya sA = a1+a2+a3+a4, misalkan ada 6 pasangan bilangan : a1+a2, a1+a3, a1+a4, a2+a3, a2+a4, a3+a4. nA adalah banyaknya dari 6 bilangan ini yang habis membagi sA. Cari semua 4 angka a1, a2, a3, a4 yang mempunyai nilai nA terbesar.
Contohnya :
Misalkan a1, a2, a3, a4 = 1,2,3,6
sA = 1+2+3+6 = 12
1+2 = 3 habis membagi 12
1+3 = 4 habis membagi 12
1+6 = 7 tidak habis membagi 12
2+3 = 5 tidak habis membagi 12
2+6 = 8 tidak habis membagi 12
3+6 = 9 tidak habis membagi 12
Jadi nA = 2.
Sekarang cari semua kemungkinan a1, a2, a3, a4, yang menghasilkan nA terbesar yang mungkin.
Uda terjawab blom mas zai ??
saya coba menggunakan vb6 boleh kan mas :D
dengan Ai=20, karna dikomp saya klu Ai ratusan prosesny lelet mas (maklum komp dangak2) :(
Private Sub Command1_Click()
Dim ai, sa, na, a, b, c, d, e, f As Integer
Dim i, j, k, l As Integer
ai = 20
For i = 1 To ai
If i < ai + 1 Then
For j = i + 1 To ai
If j < ai + 1 Then
For k = j + 1 To ai
If k < ai + 1 Then
For l = k + 1 To ai
If l < ai + 1 Then
sa = i + j + k + l
If sa Mod (i + j) = 0 Then a = 1
If sa Mod (i + k) = 0 Then b = 1
If sa Mod (i + l) = 0 Then c = 1
If sa Mod (j + k) = 0 Then d = 1
If sa Mod (j + l) = 0 Then e = 1
If sa Mod (k + l) = 0 Then f = 1
na = a + b + c + d + e + f
List1.AddItem (i & "+" & j & "+" & k & "+" & l & " = " & sa & " --> " & na)
a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
na = 0
sa = 0
End If
Next l
End If
Next k
End If
Next j
End If
Next i
End Sub
betul gak mas ^-^ :-\ :-\
-
Jawabannya
Mandarin : wo bu zhi dao
English : I don't know
Indonesian : Ane ga tau *sadface*
:D
-
Klo ane mau jawab nih pertanyaan, kyaknya ane mesti upgrade otak neh... =)) =))
#Numpang ngejunk ^_^ ^_^ ^_^
-
2,6,8,12
-
boleh ndak copy teks supaya bisa diskusi sama teman teman di fb
-
aduh,,.. apal agi aku bos...
-
Ga tahu gan :o