1 条题解

  • 0
    @ 2025-5-7 22:58:13

    解题思路

    1. 初始化
      • 初始化计数器 cnt 为 1。
      • 初始化两组数字 a1 = 1, b1 = 1a2 = 6, b2 = 8
      • 输出初始的数字对 (a2, b2)
    2. 循环计算和输出
      • 进入 while 循环,当 cnt < 10 时执行循环体。
      • 对于每一次循环:
        • 计算新的数值 x1 = 2 * b1 + 1y1 = 2 * a1x2 = 2 * b2 + 1y2 = 2 * a2
        • 计算 p = x1 * x2 + 2 * y1 * y2q = x2 * y1 + x1 * y2
        • 计算新的数字对 na = q / 2nb = (p - 1) / 2
        • 更新 a2 = nab2 = nb
        • 输出新的数字对 (a2, b2)
        • 计数器 cnt 自增 1。
    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    
    int main(){
    	int cnt = 1;
    	int a1 = 1,b1 = 1,a2 = 6, b2 = 8, na,nb;
    	//printf ("%10d%10d\n", a1, b1);
    	printf ("%10d%10d\n", a2, b2);
    	while(cnt<10){
    		int x1 = 2*b1+1, y1 = 2*a1, x2 = 2*b2+1, y2 = 2*a2;
    		int p = x1*x2+2*y1*y2, q = x2*y1+x1*y2;
    		na = q/2, nb = (p-1)/2;
    		a2 = na, b2 = nb;
    		printf ("%10d%10d\n", a2, b2);
    		cnt++;
    	}
    }
    
    • 1

    信息

    ID
    321
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    1
    上传者