CF1916D Mathematical Problem 题解

CF1916D Mathematical Problem

题意:

给定奇数 n n n,求出 n n n 个正整数满足都是长度为 n n n 的完全平方数,且组成这 n n n 个数的数字相同如(169,961)。

思路:

神秘题目。看看你的观察力!
注意奇数这个重要性质。
发现 n = 3 n=3 n=3 时候是 169 , 196 , 961 169,196,961 169,196,961 n = 5 n=5 n=5的时候我们可以把以上每个数后面加两个0,或者相邻数字之间加0。
n = 5 : 16900 , 19600 , 96100 , 10609 , 90601 n=5:16900,19600,96100,10609,90601 n=5:16900,19600,96100,10609,90601
n = 7 : 1690000 , 1960000 , 9610000 , 1060900 , 9060100 , 1006009 , 9006001 n=7:1690000,1960000,9610000,1060900,9060100,1006009,9006001 n=7:1690000,1960000,9610000,1060900,9060100,1006009,9006001
依次可以得到 n = 9 , n = 11 n=9,n=11 n=9,n=11到所有答案……

code:

#include<bits/stdc++.h>
using namespace std;
int T,n; 
int main(){
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		if(n==1){
			printf("1\n");
			continue;
		}
		if(n==3){
			printf("169\n196\n961\n");
			continue;
		}
		printf("169");
		for(int i=1;i<=n-3;i++) printf("0");
		printf("\n");
		printf("196");
		for(int i=1;i<=n-3;i++) printf("0");
		printf("\n");
		printf("961");
		for(int i=1;i<=n-3;i++) printf("0");
		printf("\n");
		for(int i=1;i<n/2;i++){
			printf("1");
			for(int j=1;j<=i;j++) printf("0");
			printf("6");
			for(int j=1;j<=i;j++) printf("0");
			printf("9");
			for(int j=2*i+3;j<n;j++) printf("0");
			printf("\n");
			printf("9");
			for(int j=1;j<=i;j++) printf("0");
			printf("6");
			for(int j=1;j<=i;j++) printf("0");
			printf("1");
			for(int j=2*i+3;j<n;j++) printf("0");	
			printf("\n");
		}
	}
	return 0;
} 
//5:10609
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值