某公园门票价格为:成人票8元/张,儿童票3元/张;某旅游团来公园游玩,该团内有成人和儿童(成人和儿童都有),共花了40元买门票,请你分别计算出成人和儿童可能的人数,按照成人从少到多,儿童从多到少的规律数出结果。
输入
无
输出
若干行,每行2个整数用空格隔开,分别代表成人和儿童可能的人数(成人从少到多,儿童从多到少)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int d,x;
for(d=8;d<=40;d=d+8)
{
x=40-d;
if((x+d)==40)
{
cout<<d/8<<" "<<x/3;
return 0;
}
}
return 0;
}
Line5
中应该是<40
,而非<=40
,因为成人和儿童都有Line8
建议改为if(x%3==0)
#include <stdio.h>
int main()
{
const int childPrice = 3;
const int adultPrice = 8;
const int totalCount = 40;
for (int adultCnt = adultPrice; adultCnt<totalCount; adultCnt += adultPrice) {
int remainCounut = totalCount-adultCnt;
if (remainCounut%childPrice == 0) {
printf("Solu : Adult-%d[%d] Child-%d[%d] \n",
adultCnt/adultPrice, adultCnt,
remainCounut/childPrice, remainCounut);
}
}
return 0;
}
你为什么,只找到一种可能就返回了?不应该所有可能都输出吗?