这次学习的是如何区分/与%
想必在大多数情况下,能够很好区分
“/”这个符号表示为÷(除号),如246/100=2
“%”这个符号表示为取余,如246%100=46,也可以这样理解246%100=246/200=1...46
来看到例题
问:468可以数量最少可以分为几个100,几个50,几个20,几个10,几个5,几个1。
看到题目,我们首先理清自己思路
468 | / | % |
除数 | 商 | 余数 |
100 | 4 | 68 |
50 | 1 | 18 |
20 | 0 | 18 |
10 | 1 | 8 |
5 | 1 | 3 |
1 | 3 | 0 |
从上述表格,我们可知我们想要得到商(/)这里的结果作为最终结果,但其中余数(%)又参与了其中运算。
#include<cstdio>
int main(){
int n;
scanf("%d",&n); //n = 468
printf("%d能分成",n);
printf(" %d张100,", n/100); //输出值为4
n %= 100; //等同于n = n % 100,此时n=68
printf("%d张50,", n/50);//以n=68执行除50操作,输出值为1
n %= 50; //68 % 50 = 68 / 50...18 n = 18
printf("%d张20,", n/20);//输出值为0
n %= 20; //n = 18
printf("%d张10,", n/10);//输出值为1
n %= 10; //n = 8
printf("%d张5,", n/5);//输出值为1
n %= 5; //n = 3
printf("%d张1", n );//输出值为3
return 0;
}
该方法适用于零基础小白,本质上这属于贪心算法,之后会进行补充
下图为该程序运行结果