枚举中的嵌套循环

枚举中的嵌套循环

乘法口诀表

题目描述

输出九九乘法口诀表

分析

一共有9行,第 i 行一共有 i 列,枚举第 i 行、第 j 列的表达式

关键代码
	for (int i = 1; i <= 9; i ++) {
    
    
		for (int j = 1; j <= i; j ++) {
    
    
			printf("%d*%d=%d ", j, i, i*j);
		}
		printf("\n");
	}
输出观察在这里插入图片描述

USACO_2019_12_Bronze_T1_Cow Gymnastics

题目描述

检查奶牛A和B在训练后的排名是否发生了变化

分析

枚举所有的奶牛对 (i,j),利用函数f(i,j)检查这对奶牛的排名变化

关键代码
	cin >> n;
	for (int i = 1; i <= n; i ++) {
    
    
		for (int j = i + 1; j <= n; j ++) {
    
    
			printf("(%d,%d) ", i, j);
		}
		printf("\n");
	}
输出观察

在这里插入图片描述

USACO_2020_12_Bronze_T2_Daisy Chains

题目描述

作为一名崭露头角的摄影家,Bessie 决定给这些花拍些照片。具体地说,对于每一对满足 1≤i≤j≤N 的花 (i,j),Bessie 会给从花 i 到花 j 之间的所有花(包括 i 和 j)拍一张照。

分析

照片(i,j)拍摄从第 i 朵到第 j 朵花,枚举所有的照片,然后检查照片中是否有平均花

关键代码
	cin >> n;
	for (int i = 1; i <= n; i ++) {
    
    
		for (int j = i; j <= n; j ++) {
    
    
			printf("(%d,%d) ", i, j);
		}
		printf("\n");
	}
输出观察

在这里插入图片描述

2020上海小学组 T5

题目描述

在一个英国古建筑的墙面上有很多个单词,有些单词看上去很舒服,有些看上去不舒服。如果一个单词满足以下两个条件,我们称这个单词是不舒服的:
1、 单词长度至少是 2
2、 超过一半的字母是相同的

分析

枚举所有长度大于等于2的子串

关键代码
	string s;
	cin >> s;
	int len = s.size();
	
	for (int i = 0; i < len; i ++) {
    
    
	    for (int j = i + 1; j < len; j ++ ) {
    
    
			cout << s.substr(i, j-i+1) << ' ';
		}
		cout << endl;
	}
输出观察

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/davidliule/article/details/111872200