题解 | #不找零钱#

不找零钱

https://ac.nowcoder.com/acm/problem/22214

不限数量,面值a元和b元,问能否凑出总价c元

a, b, c 都是正整数,且 a, b <= 100, c <= 10000

具体看这里:

a,b,c = map(int,input().split())
count = 0
for i in range(c+1): 
    if (c-i*a) % b == 0:
        print("Yes")
        count = 1
        break         
if count == 0:
    print("No")
#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    for(int i=0;i<=c;i++){
        for(int j=0;j<=c;j++){
            if(i*a+j*b==c){
                printf("Yes");
                return 0;
            }       
        }
    }
printf("No");
return 0;
}

【Python】 输入:input、map

a,b,c = map(int,input().split()) # input()配合split()函数使用,得到输入的多个值,map函数将这多个值批量转换成int整数型(只能进行多个值的转换)

for i in range(c+1): # i 取从 0 到 c 的整数

if (c-i*a) % b == 0: # 表面是判定余数是否为0,实际含义还是判定 i*a+j*b == c
但这么写,少设一个未知数。节省,需要大力发扬的传统美德!

count = 0count = 1 # 可以看作人为打的一个小标记,成了是1,没打标记仍是0就没成

printf("No"); # count 仍为0,输出No。但我开始提交把No大小写搞错写成NO了,影响的。

 

【C】
for(int i=0;i<=c;i++){ for(int j=0;j<=c;j++){
这里的i<=cj<=c,为什么是c?有人傻傻按题目c <= 10000写 i<= 10000
a,b都是非负整数,总和为c,故最小为0,最大不会超过c
你想啊,超过c,还上哪取到整数去?【i*a+j*b == c】
对了,应该不会有人 ==(判定相等)和 =(赋值)分不清吧?不会吧不会吧......

 

哎,发现C语言的占用内存好少,突然间就好感噌噌了...... >v< ......

alt

 

[ 后记 ] ~

写这个题目时,首先想到的是双重循环。(C语言就是那么个写的,判定 i*a+j*b == c )

学杂了,直接在Python的for循环里写 for(int i=0;i<=c;i++) 完全没觉得不对......

实际上Python的for循环 —— for i in range ():

range()是一个函数,for i in range (): 就是给 i 赋值。 for i in range (1,3): 把1, 2依次赋值给 i

range () 函数的使用
range(start, stop, step): 分别是起始、终止和步长。默认步长为1
range(1,3,2): 从1到3,不包含3,每次增加2, 1+2=3, 输出只有1
range(1,3): 从1到3,不包含3,即1,2
range(3): 从0到3,不包含3,即0,1,2

因为这个“不包含3”,同理,本题中用Python写要注意是for i in range(c+1):
如果写c而不是c+1,取到的就是小于而不是小于等于了。[ 写c取0到c-1取不到c ]
在此感叹一下,刷算法题还是得用C/C++,更顺应人类的思路,灵感得以直线汩汩流淌。
虽然我平日里喜欢写Python,但刷算法时,正常思路有时用Python写,太绕乎了。
我还是认为Python更适合写讨巧的东西。

补充:本篇涉及到的一些Markdown语法 ——

  1. 换行:每行末尾打两个空格,按一下回车(吐槽:这行为乍看好玄学但真的可)
  2. 中间空一行:&nbsp; 但末尾也要 - 打两个空格,按一下回车(参考上面绿***域)
  3. 显示 &nbsp; 的方法:在&nbsp; 前加上 \ 。对了," ; " 是英文符号,不是中文别搞错了
  4. 红色字体 <font color='red'> text </font> 或 <font color=FF0000> text </font>

参考链接: Markdown 换行语法 · Markdown 官方教程

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务