首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从新的整数值中计数?

如何从新的整数值中计数?
EN

Stack Overflow用户
提问于 2015-09-08 17:44:48
回答 7查看 145关注 0票数 3

我不得不计算一定数量的门票的价格,就像一个主题公园。门票的价格和数量必须由用户提供,但这不是我的问题。我的问题是,当用户输入11张票时,他会得到一张免费的第11张票,但当他超过11张时,他仍然要支付第11张票的费用。有人能帮我吗?

这是我的密码:

代码语言:javascript
复制
static void Main(string[] args)
{
    Console.Write("Voer de prijs van de ticket in: ");
    int priceTicket = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Eent ticket kost €{0},-\n\n", priceTicket);
    Console.Write("Voer in hoeveel tickets u wilt (per 10 1 gratis): ");
    int amountTickets = Convert.ToInt32(Console.ReadLine());
    int ticketsTotalPrice = amountTickets * priceTicket;
    if(ticketsTotalPrice % 11 == 0) 
    {
        ticketsTotalPrice -= priceTicket;
    }
    string ticketsTotalPriceStr = ticketsTotalPrice.ToString();
    Console.WriteLine("\n\nU heeft "+amountTickets +" tickets gekozen, dit kost " +ticketsTotalPriceStr);
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-09-08 18:04:36

价格公式是(total- (total/11))*TicketPrice

total/11是免费票的计数。

(total- (total/11))是他应该付的票的数目

(total- (total/11))*TicketPrice是他应该付出的总价

int total=10,则需计算10张票;

int total=11,则需计算10张票;

int total=12则为11张票;

..。

..。

int total=21则为20张票;

int total=22则为20张票;

int total=23则为21张票;

票数 1
EN

Stack Overflow用户

发布于 2015-09-08 17:50:20

当用户购买11张票的倍数时,即11、22、33、.在这种情况下,你减少的数额正好一个票价,所以只有10,21,32,.你得重新考虑这部分。既然这是家庭作业,我就不详细讲了,因为这是,你应该试着找出来的。

如果我不知道更多,我开始枚举不同的情况,然后尝试找到一个模式。我想它应该是这样的:左订票,右票支付:

1->1,2->2,9->9,10->10,11->10,

12->11,13->12,.>19,21->20,22->20,

23->21,24->22,31->29,32->30,33->30,

34->31 .

约翰尼·莫普拿走了整数除法是关键。每买11张票,你就能得到1张免费票。所以免费票是numberOfTickets / 11。但既然你不送部分票,你就得把这个数目加起来。整数除法就是这样做的(至少对于正数,但不想混淆)。

票数 1
EN

Stack Overflow用户

发布于 2015-09-08 18:02:26

我的问题是,当用户输入11张票时,他会得到一张免费的第11张票,但当他超过11张时,他仍然要支付第11张票的费用。

将其更改为只适用于有11张票时的折扣:

代码语言:javascript
复制
int ticketsTotalPrice = amountTickets * priceTicket; 

if (amountTickets == 11) {
    ticketsTotalPrice -= priceTicket;
}

替代品

如果你不是认真的,我认为你的意思,这里有一些替代的解决方案。

如果你想让每11张票都是免费的,那么你可以这样做:

代码语言:javascript
复制
int ticketsTotalPrice = (amountTickets - amountTickets / 11) * priceTicket;

或者,如果您希望它只在票数可除以11的情况下应用折扣,则可以这样做:

代码语言:javascript
复制
int ticketsTotalPrice = amountTickets * priceTicket;

if (amountTickets % 11 == 0) {
    ticketsTotalPrice -= amountTickets / 11 * priceTicket;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32464106

复制
相关文章

相似问题

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