输入一个整数
。
在一行上输出一个字符串,用于描述这个数列中的元素从小到大相加的形式。元素与元素之间用加号连接。
1
1
2
3+5
3
7+9+11
4
13+15+17+19
#include <stdio.h>
void func(int num, int js[])
{
int ji = 0, sum = 0, k = 0, first = 0;
if (num < 1 || num > 100)
exit(1);
ji = num * num * num;
first = num * (num - 1) + 1; // 所有加数的首项
/* 若首项是3,则接下来为3+5+7+9+***, 相当于3+(3+2)+(3+2+2)+(3+2+2+2)+***,
* 相当于3+(3+2^1)+(3+2^2)+(3+2^3)+*** 。
* 将每一项写入数组里,若后续不满足则清零此数组。
*/
for (int k = 0; k < num; k++) {
sum += first + 2 * k;
js[k] = first + 2 * k;
}
if(sum != ji){
for (int i = 0; i < 100; i++)
{
js[i] = 0;
}
}
}
int main() {
int num = 0, i=0, j=0;
int js[100]; // jishu
for (i = 0; i < 100; i++) {
js[i] = 0;
}
scanf("%d", &num);
func(num, js);
while(js[j] != '\0'){
printf("%d", js[j]);
if(js[j+1] != '\0')
printf("+");
j++;
}
} #include <math.h>
#include <stdio.h>
int main() {
int m,n,mid;
scanf("%d",&m);
n=pow(m,3);mid=n/m;
if(m%2==1) //由中位数反推首项
{
int temp=m/2;mid-=2*temp;
}
else
{
int temp=m/2;mid=mid-2*temp+1;
}
int i=0;
while(i<m)
{
if(i==m-1) printf("%d",mid+2*i);
else printf("%d+",mid+2*i);
i++;
}
return 0;
} #include <stdio.h>
int main() {
int a;
scanf("%d",&a);
int m=a*a;
for(int i=m-a+1;i<m+a-1;i=i+2){
printf("%d+",i);
}
printf("%d",m+a-1);
return 0;
} #include <stdio.h>
#define d 2//等差数列的公差为2
int main()
{
int n = 0;
scanf("%d",&n);
int a[n];//用来存储每一项
for(int i = 1;i<=n;i++)//计算除第一项外的其它项数的值
{
a[0]=n*(n-1)+1;//计算等差数列的首项
a[i]=a[0]+(i-1)*d;//等差数列的公式
}
printf("%d",a[1]);//先打印第一项,后面的加号才好处理
for(int j = 2;j<=n;j++)
{
printf("+%d",a[j]);//打印后面几项
}
return 0;
} #define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
int main()
{
//输入数字m
int m;
scanf("%d", &m);
//根据观察得出每个数字m的立方拆开的首项是有规律的: 1 3 7 13 21 31 42 。。。。。。。他们之间的差值是正偶数2 4 6 7 810.。。
//由此便可以创建出一个数组存放首项,之后的每一项都是+2得到的连续的奇数,由此全部相加m个连续奇数即可验证定理
//得到每一个首项
int arr[100];
int i = 1;
int n = 0;
for (int j = 0; j < 100; j++)
{
i = i + n;
arr[j] = i;
n = n + 2;
}
//定理得出:
if (m >= 1 && m <= 100)
{
int k = 0;
int i = 0;
if (i < m - 1)
{
for (k = arr[m - 1]; i < m - 1; i++)
{
printf("%d+", k);
k = k + 2;
}
}
if (i == m - 1)
{
printf("%d", k);
}
}
return 0;
} #include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a == 0)
{
printf("%d",a);
return 0;
}
int math = a*a-a+1;
for(int i = 0;i<a;i++)
{
if(i == 0)
{
printf("%d",math);
}
else
{
printf("+%d",math);
}
math += 2;
}
return 0;
} #include <stdio.h>
int main() {
int a, b;
scanf("%d", &a);
b=a*a*a/a-(a/2)*2+(a%2==0);//算出第一位奇数
while(a--)
{
printf("%d",b);
b+=2;
if(a>0) printf("+");
}
return 0;
}