Question #22719

Given an int count of a number of donuts, return a string of the form 'donut 1,donut 2,..., donut <count>', where <count> is the number passed in. However, if the count is 5 or more, then use the string 'and <num> more donuts' as the last item instead of the actual list of donuts, where <num> is the number of remaining donuts
So
donuts(3) returns 'donut 1,donut 2,donut 3'
donuts(4) returns 'donut 1,donut 2,donut 3,donut 4'
donuts(10) returns 'donut 1,donut 2,donut 3,donut 4,and 6 more donuts'
donuts(20) also returns 'donut 1,donut 2,donut 3,donut 4,and 16 more donuts'
Python functions: range(), str()
I have this so far, but I can't get the donut 1,donut 2, etc.
def donuts(count):
if count >= 5:
count -= 4
numDonuts = 'and ' + str(count) + ' more donuts'
else:
numDonuts = 'donut ' + str(count)
return numDonuts
output:
‘donut 1’
‘donut 1,donut 2,donut 3’
‘donut 1,donut 2,donut 3,donut 4’
‘donut 1,donut 2,donut 3,donut 4 and 6 more donuts’
‘donut 1,donut 2,donut 3,donut 4 and 95 more donut

Expert's answer

Program is written on C++, using files.

#include <iostream>

#include <fstream>

using namespace std;

int main() {

ifstream in("input.txt");

ofstream out("output.txt");

for (int j=0; j<20; j++) {

int count;

in >> count;

if (count<5) {

for (int i=1;

i<=count; i++) {

if

(i==count) {

out << "donut " << i;

}

else {

out << "donut " << i <<

",";

}

}

}

else {

for (int i=1; i<5;

i++) {

out

<< "donut " << i << ",";

}

count-=4;

out << "and

" << count << " more donuts";

}

out << endl;

}

return 0;

}

#include <iostream>

#include <fstream>

using namespace std;

int main() {

ifstream in("input.txt");

ofstream out("output.txt");

for (int j=0; j<20; j++) {

int count;

in >> count;

if (count<5) {

for (int i=1;

i<=count; i++) {

if

(i==count) {

out << "donut " << i;

}

else {

out << "donut " << i <<

",";

}

}

}

else {

for (int i=1; i<5;

i++) {

out

<< "donut " << i << ",";

}

count-=4;

out << "and

" << count << " more donuts";

}

out << endl;

}

return 0;

}

## Comments

## Leave a comment