题目要求

P2141题目链接

分析

暴力法可解——我们只需遍历一遍数组,在里面再遍历一次,再遍历一次,共三层嵌套,需要保证内层counter数值不能与外面诸层的counter相同~~

暴力还可防漏,很划算的呀~~

第一次提交——WA

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();int[] array = new int[num];for (int i = 0; i < num; i++) {array[i] = scanner.nextInt();}int counter = 0;for (int i = 0; i < num; i++) {int now = array[i];for (int j = 0; j < num && j != i; j++) {int num1 = array[j];for (int k = 0; k < num && k != i && k != j; k++) {int num2 = array[k];if (num1 + num2 == now) {counter++;}}}}System.out.println(counter);scanner.close();}
}


我傻了,但必须冷静分析,问题在哪里啊?

问题分析:

我们开一组新的测试用例(自编):

然后我们打开Debug重新看程序运行的流程,发现这是不对的:

如果我们把判断条件放在for循环两个;的中间,则一旦失败就不会继续执行,所以这个条件必须放在for的内部~~

第二次提交——AC

放出AC代码(Java语言描述):

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();int[] array = new int[num];for (int i = 0; i < num; i++) {array[i] = scanner.nextInt();}int[] counterArr = new int[num];for (int i = 0; i < num; i++) {int now = array[i];for (int j = 0; j < num; j++) {if (j == i) {continue;}int num1 = array[j];for (int k = 0; k < num; k++) {if (k == i || k == j) {continue;}int num2 = array[k];if (num1 + num2 == now) {counterArr[i] = 1;break;}}}}int counter = 0;for (int i = 0; i < num; i++) {if (counterArr[i] == 1) {counter++;}}System.out.println(counter);scanner.close();}
}

for循环两个分号之间不要乱加判断条件(记洛谷P2141题WA的经历,Java语言描述)相关推荐

  1. 不重复的两两比较(洛谷P5728题题解,Java语言描述)

    题目要求 P5728题目链接 分析 这题唯一令我困惑的是如何做到两两比较且不重复. 后来想了想,其实也简单. 我直接想到了排列组合,所以就觉得很复杂,其实确实不复杂,我们只需要遍历的时候让内层循环的j ...

  2. 简单粗暴地开个十层循环(洛谷P2089题题解,Java语言描述)

    题目要求 P2089题目要求 分析 既然是一定在1-3个,10种都要有,那么比起琢磨一种复杂算法,暴力求解是很好的思路啊! 既然是Java的连接,用StringBuilder就会较好. 不能直接打印S ...

  3. 利用循环队列的思想进行加密解密(洛谷P1914题题解,Java语言描述)

    前言 在我看来,理解循环队列对我们思考问题的帮助就是: 合理利用"%"的约束,将问题的"越界"重新弹回问题范围内. 本文就是一个例子,循环队列的思想为我快速秒杀 ...

  4. python 计算两个年份之间闰年的数量 判断某年份是否为闰年

    import calendar print(calendar.isleap(2020)) print(calendar.isleap(2021)) print(calendar.leapdays(20 ...

  5. 数据结构教程(Java语言描述)前两章总结

    一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...

  6. Java语言描述 猴子吃桃问题(递归和循环写法)

    //题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个//第二天早上又将剩下的桃子吃掉一半,又多吃了一个//以后每天早上都吃了前一天剩下 的一半零一个.到第10天早上想再 ...

  7. 注意满足循环终止条件时counter是否仍在+1(记洛谷P1035WA的经历,Java语言描述)

    题意描述 P1035题目链接 分析 题不难,至少我们可以用比较直接的思维,用循环去AC它~~ 每次自增就行,加一个计数器counter就完事~~ 自测--听取WA声一片 import java.uti ...

  8. 洛谷刷题记录(python)【入门3】循环结构

    [入门3]循环结构https://www.luogu.com.cn/training/102#problemsP5718 [深基4.例2]找最小值 n = int(input()) a = [int( ...

  9. 两分数相乘后约分的Cantor表(洛谷P1482题题解,Java语言描述)

    题目要求 P1482题目链接 分析 据说本题是这题的升级版-- → P1014题题解 升级的地方其实就是相乘之后约分. 约分需要求解最大公约数,gcd()是吧-- 但我这里偏偏懒得写gcd,就想用Ja ...

最新文章

  1. Hadoop之道--MapReduce之Hello World实例wordcount
  2. python 读excel中的sheet_Python使用一些背景颜色读取Excel工作表(xlsx)中的单元格?...
  3. 优化order by语句
  4. django mysql 过滤所有id_Django数据库中常用的过滤操作
  5. CSS 样式表(小结)
  6. zip压缩/tar打包
  7. java byte数组与int,long,short,byte转换
  8. Mac VLC播放器怎么禁止使用硬件解码?
  9. 将10位时间戳转换成字符串格式时间显示
  10. [读书笔记]普林斯顿微积分读本(修订版)-未完工
  11. 将安卓手机投屏到win10上
  12. 智在未来,明年再聚--OFweek2018(第三届)中国高科技产业大会完美闭幕!
  13. 每日一字:biáng
  14. android studio项目中将普通文件夹变成moudle
  15. mysql workbench 闪电_MySQL Workbench下载|可视化数据库设计建模(MySQL Workbench) 8.0 最新版-闪电下载吧...
  16. ubuntu终端字体大小调整方法
  17. 聊天机器人发展及应用技术解析
  18. python二重积分_用python求一重积分和二重积分的例子
  19. 大数据领域就业和发展指南
  20. JAVA中高访问量高并发的问题的一部分解决方案

热门文章

  1. Angularjs Nodejs Grunt 一个例子
  2. 山西计算机工程师职称英语,山西中级工程师职称在线查询
  3. 智能机器人建房子后房价走势_人工智能未来10年将颠覆房地产行业,你还敢买房吗?...
  4. 意大利_【解读】去意大利留学,一定要学意大利语吗?意大利语难吗?
  5. h标签对html网页的作用,网页H标签SEO价值的说明与举例
  6. java语言程序设计基础篇14.6答案_《Java语言程序设计-基础篇》答案-第15章
  7. android wifi 组播,在Android上显示实时UDP或RTP流(多播)
  8. 电脑显示器不亮主机正常_电脑主机已开机 显示屏却不亮(看完秒懂)
  9. php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)
  10. go int 转切片_一文掌握GO语言实战技能(二)