Это общая арность типа или другой путь - число параметров типа, поддерживаемых общим типом. IEnumerable<T>
поддерживает параметр одного типа. Если вы посмотрели Dictionary<TKey, TValue>
, вы заметили бы значение arity 2.
Это действительно жадный подход, но вам нужно поменять местами порядок if-then-else. В общем, жадный означает потреблять в текущий момент самое большое количество, которое вы можете потреблять.
Вам нужно сначала проверить самую большую монету. Нет необходимости в цикле while.
if(sum>=100) {
hundreds=sum/100;
sum-=hundreds*100;
}
if(sum>=10){
tens=sum/10;
sum-=tens*10;
}
ones = sum;
Следующий предложенный код:
и теперь, предлагаемый код:
#include <stdio.h>
int main( void )
{
int sum;
do
{
printf("Enter a sum of money in range 1 to 999\n");
if( scanf("%d",&sum) != 1)
{
fprintf( stderr, "scanf failed\n");
return -1;
}
} while( sum<0 || sum>999 );
int hundreds = sum/100;
sum = sum % 100;
int tens = sum/10;
sum = sum % 10;
int ones = sum;
printf("%d $100, %d $10, %d $1\n",hundreds,tens,ones);
}
В предлагаемом коде игнорируются (американские) купюры $ 50, $ 20, $ 5 и $ 2