Exercise10、11

Python基础语法详解

ex10.py

1、Escape Sequences : 转义字符

2、\n : 换行

3、\t  : tab

4、\\ : print \

5、\"(') : print " or '

 

 

ex11.py

1、end=' ' : Tells print to not end the line with a new line.

2、input( ) : get keyboard characters .

 

ex12.py

Exercise 2A 要求解决一个名为“Circular Pair”的问题。以下是该问题的具体描述和解决方案: ### Problem Statement 给定两个正整数 \( A \) 和 \( B \),其中 \( A \) 和 \( B \) 具有相同的位数且没有前导零。要求找到所有满足以下条件的圆对(circular pair)的数量: - 圆对是由两个不同的正整数 \( (n, m) \) 组成。 - 可以通过将 \( n \) 的末尾数字移动到开头来得到 \( m \),而不需要改变移动的数字的顺序。 - \( n \) 和 \( m \) 必须具有相同数量的位数,并且不能有前导零。 - 满足 \( A \leq n \leq m \leq B \)。 ### Sample Input and Output - **Sample Input 1**: `11 21` - **Sample Output 1**: `1` (只有一个圆对:(12, 21)) - **Sample Input 2**: `1111 2222` - **Sample Output 2**: `28` ### Solution 为了高效地解决问题,可以采取以下步骤: 1. 遍历从 \( A \) 到 \( B \) 的每个数字 \( n \)。 2. 对于每个 \( n \),计算其所有的圆对 \( m \)。 3. 检查这些圆对是否在范围 \( [A, B] \) 内。 #### Key Steps 1. **计算最高位**:为了生成圆对,需要知道数字的最高位及其对应的幂次。 2. **生成圆对**:通过旋转数字 \( n \) 来生成所有可能的圆对 \( m \)。 3. **检查范围**:验证生成的圆对 \( m \) 是否在 \( [A, B] \) 范围内。 #### Base Code ```c #include <stdio.h> // 计算数字 x 的最高位 int highestOrder(int x) { int res = 1; while (res <= x / 10) { res *= 10; } return res; } int main() { int A, B; int ans = 0; scanf("%d %d", &A, &B); for (int n = A; n <= B; n++) { int temp = n; int len = 0; while (temp > 0) { temp /= 10; len++; } int ho = highestOrder(n); int m = n; for (int k = 1; k < len; k++) { int lastDigit = m % 10; m = (m / 10) + lastDigit * ho; if (m >= A && m <= B && m != n) { ans++; } } } printf("%d\n", ans); return 0; } ``` ### Explanation 1. **highestOrder 函数**:计算数字的最高位,例如对于 2024,返回 1000。 2. **主循环**:遍历从 \( A \) 到 \( B \) 的每一个数字 \( n \)。 3. **生成圆对**:通过旋转 \( n \) 的每一位,生成所有可能的圆对 \( m \)。 4. **检查范围**:如果生成的 \( m \) 在 \( [A, B] \) 范围内且不等于 \( n \),则计数器 `ans` 增加。 这个方法的时间复杂度是 \( O((B - A) \times \log_{10}(B)) \),适用于题目给出的约束条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值