【HJ76】尼科彻斯定理

题目描述

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19

输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。
本题含有多组输入数据。
数据范围:数据组数:t =【1,5】,m =【1,100】
进阶:时间复杂度:O(1),空间复杂度:O(1)

输入描述:
输入一个int整数
输出描述:
输出分解后的string

示例1

输入:
6
输出:
31+33+35+37+39+41

题解思路

  • 找规律,当 m = n 时,第一个输出的数为:a1 = n^2 - (n - 1)
  • 每次输出 n 个数相加,都为奇数,即 a1 += 2

代码实现

#include 

int main()
{
	int m, a1;
	while(scanf("%d", &m) != EOF) {
		a1 = m * m - (m - 1);
		for(int i = 0; i < m - 1; ++i) {
			printf("%d+", a1);
			a1 += 2;
		}
		printf("%d\n", a1);
	}
	return 0;
}

你可能感兴趣的:(牛客刷题,c语言,数学)