Dans la culture chinoise, il est commun lors des célébrations de donner des "enveloppes rouges" (##) contenant un peu d'argent. Le plus souvent, les générations adultes donnent aux générations plus jeunes. Vous souhaitez construire une application WeChat pour aider les grand-parents à répartir leur budget de don entre leurs petits-enfants. Écrivez un programme qui calcule le nombre de dons "porte-bohneur" (égaux à 8) en fonction du budget, money , et du nombre de petits-enfants, giftees . Fonctionnement De nombreuses règles, mêlant tradition et superstition, encadre ce don : Les dons ne doivent pas contenir le montant 4 (#), car cela sonne comme "mort" (#). Il est de bonne augure de donner un montant de 8 (#), car cela sonne comme "fortune" (#). Il serait mal vu de ne rien donner à l'un des petits-enfants. Votre algorithme doit donc retourner le nombre de dons égaux à 8 en respectant les règles suivantes : Dépenser l'intégralité du budget (sauf s'il y a suffisamment de budget pour donner 8 à tout le monde) Ne donner aucun 4 (par tradition, le budget ne sera jamais à 4). Ne donner aucun 0 (sauf si le budget n'est pas suffisant). Donner un maximum de 8 une fois les règles ci-dessus respectées Implémentation Implémentez la méthode LuckyMoney(money, giftees) qui : prend en entrées les entiers money et giftees avec : 0 <= money < 100 0 < giftees < 10 et retourne le nombre de dons égaux à 8 sous forme d'un entier.
using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;
class Solution
{
public static int LuckyMoney(int money, int giftees)
{
// Write your code here
// To debug: Console.Error.WriteLine("Debug messages...");
if(money < 0 || money >= 100 || giftees <= 0 || giftees >= 10){
//throw new ArgumentException("Invalid input");
return giftees;
}
if(money < 8 ){
return 0;
}
if((money / 8) == giftees){
return money / 8;
}
if(money % 8 == 0 && money/8 < giftees){
return (int)money/8 - 1;
}
if(money/8 < giftees && (money % 8) % 4 == 0 ){
return 0;
}
if(money/8 < giftees && (money % 8) % 4 != 0 ){
return (int)money/8;
}
return -1;
}
/* Ignore and do not change the code below */
static void Main(string[] args)
{
int money = int.Parse(Console.ReadLine());
int giftees = int.Parse(Console.ReadLine());
var stdtoutWriter = Console.Out;
Console.SetOut(Console.Error);
int gifts = LuckyMoney(money, giftees);
Console.SetOut(stdtoutWriter);
Console.WriteLine(gifts);
}
/* Ignore and do not change the code above */
}
Aucun commentaire:
Enregistrer un commentaire