问题如下。顾客需要一定数量的纸张。该文件的收费如下:
我知道你必须在某个地方使用国防部部门。我不确定我的变量设置是否正确,我的大脑即将融化。很伤心对吧?哈哈。我非常感谢在这方面提供一些帮助。干杯:)
Option Explicit On
Imports system
Module paperp
Sub Main()
Dim papercost As Double
Dim onetpackage As Integer
Dim fivehpackages As Integer
Dim onehpackages As Integer
Dim singlesheets As Integer
Console.Writeline("Number of 1000 packages:")
onetpackage = convert.toint32(Console.Readline())
Console.Writeline("Number of 500 packages:")
fivehpackages = convert.toint32(Console.Readline())
Console.Writeline("Number of 100 packages:")
onehpackages = convert.toint32(Console.Readline())
Console.Writeline("Number of single sheets:")
singlesheets = convert.toint32(console.Readline())
Console.Out.Writeline("Number of 1000 packages:")
Console.Out.Writeline(onetpackage)
Console.Out.Writeline("Number of 500 packages:")
Console.Out.Writeline(fivehpackages)
Console.Out.Writeline("Number of 100 packages:")
Console.Out.Writeline(onehpackages)
Console.Out.Writeline("Number of single sheets:")
Console.Out.Writeline(singlesheets)
Console.Out.Writeline("Your total Cost is:")
Console.Out.Writeline(papercost)
End Sub
End Module发布于 2012-09-23 23:34:51
使用该代码,您只需将每个包的价格相加:
papercost = _
0.03 * 1000.0 * onetpackage + _
0.04 * 500 * fivehpackages + _
0.055 * 100 * onehpackages + _
0.1 * singlesheets然而,为了使作业有意义,我认为您应该输入总页数,然后计算包的数量。在计算包数之后,您可以使用模块来计算其余的表,但是使用子字符串也一样简单:
onetpackage = Math.Floor(totalsheets / 1000)
totalsheets -= onetpackage * 1000发布于 2012-09-23 23:33:59
为什么不循环遍历每个金额(例如,1000、500、100、1),并且使用用户在变量中指定的纸张的no,逻辑应该是这样的:
预定义的vars: no_of_sheets (用户输入),working_amount = no_of_sheets,current_index = 0,count = 0,100(数组)= (1000,500,100,1),成本= (0.03,0.04,0.055,0.1),总计= (0,0,0,0,0)
While (working_amount > 0)
if current_index < 4
if (working_amount - amounts[current_index]) >= 0
total[current_index]++
working_amount = working_amount - amounts[current_index]
else
current_index++
endif
endif
endwhile现在你有一个数组,每个块的数量,例如一个数组(1,2,3,4)表示1x1000张,2x500,3x100,4x1。
然后你就可以用价格乘以每一位。
有帮助的HOpe。
发布于 2012-09-23 23:33:36
您的作业问题是背包问题的一个例子,但幸运的是,它是一个非常简单的变体。
您不一定需要使用模块化运算符--您可以迭代地这样做。先从最贵的产品开始(它提供最好的每件商品价格),然后用你的起始资金尽可能多地“购买”(一直从钱中减去,直到你买不起),然后转到下一个可负担得起的产品,然后重复,直到你买不起任何东西。
https://stackoverflow.com/questions/12557132
复制相似问题