#include <stdio.h> #define min(x, y) (x<y?x:y) int main() { int a[10]={0, 10, 5, 10, 5, 2, 5, 10, 5, 10}; int k, r; scanf("%d %d", &k, &r); int temp=k%10; int i; int ans; if(k%10==0) ans=1; else { for(i=1; i<10; ++i) if(((temp*i)%10)==r) break; ans=min(a[temp], i); } printf("%d\n", ans); return 0; }
@对于读入的变量k,先判断它是否能被10整除。如果能Answer为1;如果不能,则在以下两种情况里选择其中的最小值即为Answer。情况一:在不使用给定零钱下,即在只用面额为10的情况下最少需要买几把铲子;情况二:在使用给定零钱下,即在用给定零钱的面额(一张)+若干张面额为10的情况下最少需要买几把铲子。