第4章 程序段的反复执行4 多重循环练习(题及答案)

(1)程序阅读

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main(){
	int i,j,n;
	cin >> n;
	for(i = 1; i <= n; i++){
		for(j = 1; j <= n - i;j++)
			cout << " ";
		for(j = 1; j < i; j++)
			cout << "*";
		cout << endl;
	}
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main(){
	int i,j,n;
	cin >> n;
	for(i = 2; i <= n; i++){
		j = i - 1;
		while(j > 1 && i % j != 0)
			j--;
		cout << i << "(" << j << ")\n";
	}
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int i, m, n = 0;
	for(i = 1; i <= 5; i++) {
		m = i % 2;
		while(m-- > 0) n++;
	}
	cout << m << "," << n;

	return 0;
}
-1,3
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int n;
	cin >> n;
	cout << n << "=";
	for(int i = 2; i <= n; i++) {
		for(; n % i == 0;) {
			n = n / i;
			cout << i;
			if(n != 1) cout << "*";
		}
	}
	return 0;
}

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int n;
	cin >> n;
	assert(1 <= n && n <= 20);
	for (int row = 1; row <= n; row++) {
		for (int col = 1; col <= n + row - 1; col++) {
			if (col <= n - row) { 
				cout << " ";
			} else { 
				cout << "*";
			}
		}
		cout << endl;
	}
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int n;
	cin >> n;
	assert(1 <= n && n <= 10);
	for(int row = 1; row <= n; row++) {
		int i = 1;
		for(int col = 1; col <= n + row - 1; col++) {
			if(col < n - row + 1) {
				cout << " ";
			} else {
				cout << i++;
			}
		}
		cout << endl;
	}

	for(int row = n - 1; row >= 1; row--) {
		int i = 1;
		for(int col = 1; col <= n + row - 1; col++) {
			if(col < n - row + 1) {
				cout << " ";
			} else {
				cout << i++;
			}
		}
		cout << endl;
	}
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int n;
	cin >> n;
	assert(1 <= n && n <= 9);
	for(int row = 1; row <= n; row++) {
		for(int col = 1; col <= row; col++) {
			cout << col << "*" << row << "=" << col*row << " ";
		}
		cout << endl;
	}
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int n;
	cin >> n;
	assert(100 <= n);
	int ways = 0;
	for(int i = 0; i <= n / 50; i++) {
		ways += (n - i * 50) / 20 + 1;
	}
	cout << ways << endl;
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
//汤永红
int main() {
	int n;
	cin >> n;
	assert(n >= 1);
	int sumOfDigits = 0;
	while(1) {
		while(n > 0) {
			sumOfDigits += n % 10;
			n /= 10;
		}
		if (sumOfDigits < 10) {
			break;
		} else {
			n = sumOfDigits;
			sumOfDigits = 0;
		}
	}
	cout << sumOfDigits << endl;
	return 0;
}

典型的数论题目,考查的是最大公约数(gcd)与最小公倍数(lcm)的定义和性质。

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    int x0, y0;
    cin >> x0 >> y0;

    if (y0 % x0 != 0) {
        cout << 0 << endl; // 如果不能整除,直接输出0
        return 0;
    }
    int k = y0 / x0;
    int count = 0;
    for (int a = 1; a * a <= k; ++a) {
        if (k % a == 0) {
            int b = k / a;
            // 计算 a 和 b 的最大公约数(不用函数)
            int m = a, n = b;
            while (n != 0) {
                int r = m % n;
                m = n;
                n = r;
            }
            int d = m; // 此时 d = gcd(a, b)
            if (d == 1) {
                if (a == b)
                    count += 1; // (a, a) 只算一种
                else
                    count += 2; // (a, b) 和 (b, a) 算两种
            }
        }
    }
    cout << count << endl;
    return 0;
}
相关推荐
生成论实验室1 分钟前
《事件关系阴阳博弈动力学:识势应势之道》第一篇:生成正在发生——从《即事经》到事件-关系网络
人工智能·科技·算法·架构·创业创新
漂流瓶jz6 分钟前
UVA-1152 和为0的4个值 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·二分查找·题解·aoapc·算法竞赛入门经典·uva
leoufung13 分钟前
LeetCode 76:Minimum Window Substring 题解与滑动窗口思维详解
算法·leetcode·职场和发展
小O的算法实验室27 分钟前
2026年IEEE TETCI,山区环境下基于双种群进化的协同无人机巡逻任务协同优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
A7bert77735 分钟前
【YOLOv8pose部署至RDK X5】模型训练→转换bin→Sunrise 5部署
c++·python·深度学习·yolo·目标检测
你撅嘴真丑39 分钟前
map 与 set容器的应用--话题焦点人物
数据结构
生成论实验室1 小时前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
li1670902701 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio
风筝在晴天搁浅1 小时前
字节高频题 小于n的最大数
算法
LabVIEW开发1 小时前
LabVIEW水力机组空蚀在线监测
算法·labview·labview知识·labview功能·labview程序