首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对如何执行这个程序感到困惑

对如何执行这个程序感到困惑
EN

Stack Overflow用户
提问于 2012-09-23 23:22:58
回答 3查看 118关注 0票数 0

问题如下。顾客需要一定数量的纸张。该文件的收费如下:

  • .10适用于单张床单。
  • 每张.055的倍数为100。
  • 每张.04的倍数为500。
  • 每张.03的倍数为1000。

我知道你必须在某个地方使用国防部部门。我不确定我的变量设置是否正确,我的大脑即将融化。很伤心对吧?哈哈。我非常感谢在这方面提供一些帮助。干杯:)

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-23 23:34:51

使用该代码,您只需将每个包的价格相加:

代码语言:javascript
复制
papercost = _
  0.03 * 1000.0 * onetpackage + _
  0.04 * 500 * fivehpackages + _
  0.055 * 100 * onehpackages + _
  0.1 * singlesheets

然而,为了使作业有意义,我认为您应该输入总页数,然后计算包的数量。在计算包数之后,您可以使用模块来计算其余的表,但是使用子字符串也一样简单:

代码语言:javascript
复制
  onetpackage = Math.Floor(totalsheets / 1000)
  totalsheets -= onetpackage * 1000
票数 1
EN

Stack Overflow用户

发布于 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)

代码语言:javascript
复制
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。

票数 1
EN

Stack Overflow用户

发布于 2012-09-23 23:33:36

您的作业问题是背包问题的一个例子,但幸运的是,它是一个非常简单的变体。

您不一定需要使用模块化运算符--您可以迭代地这样做。先从最贵的产品开始(它提供最好的每件商品价格),然后用你的起始资金尽可能多地“购买”(一直从钱中减去,直到你买不起),然后转到下一个可负担得起的产品,然后重复,直到你买不起任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12557132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档