数学(プログラム)の時間?
久々にブログ書いちゃいます。いつも通り内容が薄いですが。。。。
FB上で出てたロジックの問題です。
なんか気になったんで解いてみました。(・ω・)ノ
[問題]
三種の品物a.b.cがあり順に20.15.12円である。
a.b.cを合わせ60個買ったらちょうど1000円になった。
この時a.b.cを買った組み合わせは何通り考えられるか。
なお、a.b.cのうち買わないものがあってもよいとする。
#include <stdio.h>
#define A_PRICE 20
#define B_PRICE 15
#define C_PRICE 12
#define TOTAL(A,B,C) ( (A * A_PRICE) + (B * B_PRICE) + (C * C_PRICE) )
int main(int argc, char *argv[]) {
int count = 0;
int AllCount = 0;
for(int a = 0 ; a <= 60 ; a++)
{
for(int b = 0 ; b <= 60 ; b++)
{
// トータル数が60より上の場合は、jのループを中断
if( ( a + b ) >60 ) break;
for(int c = 0 ; c <= 60 ; c++)
{
// トータル60でなければ次の処理へ
if( (a + b + c) != 60 ) continue;
// トータル数が60より上の場合は、kのループを中断
if( (a + b + c) > 60 ) break;
// ループそうカウント数
AllCount++;
if( TOTAL (a,b,c) == 1000)
{
// マッチした個数
printf("(a,b,c) = (%d,%d,%d)\n",a,b,c);
// カウントする
count++;
}
}
}
}
printf("AllCount=%d\n",AllCount);
printf("count=%d\n",count);
return0;
}
こういうことも当たり前でも復習しておくべきですよね。♪ d(⌒o⌒)b♪