今天看到一个较简单的比赛真题,特来分享。制作不易,给个高分,谢谢。
题目描述:
这道题大家刚看到的时候可能觉得“哇塞,好难的样子”,但实际上做编程题其实就是做数学题,只要你的算法对了,程序就不会有太多的问题。
这道题我们可以分成两部分来理解
当面包数与面包机每次可烤的面包数相等,或面包数小于面包机每次可烤的面包数。
当面包数大于面包机每次可烤的面包数。
针对第一部分,用数学的思维来理解,虽然每次只能烤一个面包的一个面,但是每次能把所有面包的一个面都烤了,想要一个两面都烤到得面包,你说要多少次呢?(留给大家思考)
if(n<=k) { cout<<n*2; }
针对第二部分,还是用数学的思维来理解,每次只能烤一个面包的一个面,其实也就是烤(面包数×2)个面,因为一个面包有两个面。每次能烤k个面,一共要烤(面包数×2)个面,就要n*2/k次。
else { cout<<(n*2)/k; }
实际上这道题考验的的是数学思维,主程序仅仅不过10行,并没有蕴含多少编程技术。我希望大家做题的时候能像做数学题一样,多运用数学思维。
参考代码:
#include<bits/stdc++.h> using namespace std; int main() { int n,k; cin>>n>>k; if(n<=k) { cout<<n*2; } else { cout<<(n*2)/k; } return 0; }
制作不易,给个高分,谢谢。
0.0分
1 人评分
【绝对值排序】 (C语言代码)浏览:2937 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:574 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:690 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:535 |
蛇行矩阵 (C语言代码)浏览:524 |
1054题解浏览:460 |
数组与指针的问题浏览:715 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:534 |