第11回ブルーブリッジカップ-数字を埋める蛇紋岩

問題の説明
次の図に示すように、Xiaomingは、1から始まる正の整数の「蛇の形」で無限行列を埋めます。
ここに画像の説明を挿入

マトリックスの2行目と2列目の数が5であることが簡単にわかります。マトリックスの20行目と20列目の数を計算してください。

回答提出
これは、空欄に結果を記入する質問です。結果を計算して提出するだけです。
この質問の結果は整数です。回答を送信するときは、この整数のみを入力してください。余分なコンテンツを入力すると、スコアを付けることができなくなります。


回答:761


問題解決策1
法則を見つける:

解题思路:対角線上の数字は1、5、13、25 .. ..

#include <iostream>
using namespace std;

int main()
{
    
    
	int w = 4, ans = 1;
	for (int i = 1; i <= 19; i ++)
	{
    
    
		ans += w;
		w += 4;
	}
	
	cout << ans << endl;
	return 0;		
}

問題解決2
法則を見つける:

解题思路

  • 最初のレイヤーの開始は1、座標は(1, 1)、、行と列の合計は2です。
  • 2番目のレイヤーの開始は2、座標は(2, 1)、、行と列の合計は3です。
  • 3番目のレイヤーの開始は4、座標は(3, 1)、、行と列の合計は4です。
  • 4番目のレイヤーの開始は7、座標は(1, 4)、、行と列の合計は5です。
#include <cstdio>
#include <iostream>
using namespace std;

int g[40][40];

int main()
{
    
    
	int k = 1;
	for (int i = 2; i <= 40; i ++)					// 枚举行列之和 
		if(i % 2 == 0)
		{
    
    
			for (int j = 1; j < i; j ++)			// 奇数层:从下到上 
				g[j][i - j] = k ++;
		}
		else
		{
    
    
			for (int j = i - 1; j >= 1; j --)		// 偶数层:从上到下 
				g[j][i - j] = k ++;
		}
		
	for (int i = 1; i <= 20; i ++)
	{
    
    
		for (int j = 1; j <= 20; j ++) printf("%4d", g[i][j]);
		cout << endl;
	}
			
	return 0;		
}

LanqiaoカップC / C ++グループ州大会過去数年間の質問

おすすめ

転載: blog.csdn.net/weixin_46239370/article/details/115044476