Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 316
  • Last Modified:

Urgent Case! - the best combination of dividers '22' and '30' which divide a certain number with the smallest remainder

Hi,
Urgently Can I have some VB code so that if I enter a certain number, say '203', then the program can find out
the best combination of dividers '22' and '30' with the smallest remainder'
Example:

Enter "203"

Output:
30 x (6) + 22 X (1) => remainder is 1

I want to output '6' and '1' in the program.
0
starstarhk
Asked:
starstarhk
  • 8
  • 8
  • 2
  • +1
1 Solution
 
venkateshwarrCommented:
what about...

201x1+1x1
0
 
starstarhkAuthor Commented:
I need '30' and '22' to be my divider
30 and 22 must be used for calculation
0
 
starstarhkAuthor Commented:
the remainder must be the smallest in all cases of combinations
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
Ryan ChongCommented:
Try:

myvalue = 203
    divider1 = Int(myvalue / 30)
    tmp = myvalue Mod 30
    divider2 = Int(tmp / 22)
    MsgBox "divider1 = " & divider1 & ", divider2 = " & divider2

?
0
 
starstarhkAuthor Commented:
the number '30' doesn't have a priorty that the myvalue must not be always divided by it first.
The system must analyze in which combination is the best with the smallest remainder or no remainder
0
 
Ryan ChongCommented:
>>the number '30' doesn't have a priorty that the myvalue must not be always divided by it first.
of course, you can put 30 and 22 into variables, in order to meet your requirement
0
 
starstarhkAuthor Commented:
how about if the input day is '67'

The best combination should be '22 * (3)' with remainder '1'

but the program generated '30 * (2)' with remainder '7'

remainder '1' should be chosen.....
0
 
p_sieCommented:
Dim divider1(2),divider2(2),tmp(2)

divider1(1) = Int(myvalue / 30)
tmp(1) = myvalue Mod 30
divider2(1) = Int(tmp(1) / 22)

divider1(2) = Int(myvalue / 22)
tmp(2) = myvalue Mod 22
divider2(2) = Int(tmp(2) / 30)

if myvalue - divider1(1) * 30 - divider2(1) * 22 < myvalue - divider1(2) * 22 - divider2(2) * 30
    MsgBox "divider1 = " & divider1(1) & ", divider2 = " & divider2(1)
else
    MsgBox "divider1 = " & divider1(2) & ", divider2 = " & divider2(2)
endif
0
 
starstarhkAuthor Commented:
Hi, there is another case...

I want to have combination of dividers '22' and '30' and this time I want to avoid any remainder..
for example if the input is 23, then the old answer is that remainder is 1,
Now I want it to become 30, then if the input is 31, then I want it to become '22x2' = 44
......
so if the input is 206, then the answer should be 22x8+30 = 206
then if the input is 205, then the answer still should be 22x8+30 = 206
The criteria is that I need to have a combination with no remainder which is the closest to the input number.


This is a very difficult task for me.....
0
 
p_sieCommented:
Did my solution to your first problem (this question!) resolve it?
0
 
p_sieCommented:
By the way do not forget to close your open questions, you have 7 open!
0
 
starstarhkAuthor Commented:
thanks...your solution resolve my problem!! Thank you very much
How can I close my question?

one more thing for the new question..is
the max for the input number is 360
I still cannot figure out how to do it...
0
 
p_sieCommented:
You can close the question by clicking the accept button at the comment that answered your question.

To put a limit to the input number

If myvalue > 360 then
    MsgBox "Maximum inputnumber is 360!",vbExclamation
    exit sub
end if
0
 
starstarhkAuthor Commented:
I need your help on this problem....
0
 
p_sieCommented:
If I understand you correctly, you want the closest higher numer that has no remainder.

Dim divider1(2),divider2(2),tmp(2)

myvalue = myvalue + 21 'because it can be maximal 21 above the imputnumber
divider1(1) = Int(myvalue / 30)
tmp(1) = myvalue Mod 30
divider2(1) = Int(tmp(1) / 22)

divider1(2) = Int(myvalue / 22)
tmp(2) = myvalue Mod 22
divider2(2) = Int(tmp(2) / 30)

if  divider1(1) * 30 - divider2(1) * 22 <  divider1(2) * 22 - divider2(2) * 30
    MsgBox divider1(1) * 30 - divider2(1) * 22
else
    MsgBox  divider1(2) * 22 - divider2(2) * 30
endif
0
 
p_sieCommented:
By the way thanks for the grade of A!
0
 
starstarhkAuthor Commented:
thanks for your help !
If I want to sort a list of numbers, which sorting is good?
I want to find the smallest number among a set of number from an array?
Can u teach me how?
0
 
p_sieCommented:
Sorting numbers? In code or in a control?

Find the smallest number in an array?

Dim Lowest as Double, Arr() as Double, i as Long

Lowest = Arr(0)
For i = 1 to NumberOfRecordsInArray
    If Arr(i) < Lowest Then Lowest = Arr(i)
Next

Msgbox "Lowest number in array: " & Lowest
0

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 8
  • 8
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now