输入一个整数
。
在一行上输出一个字符串,用于描述这个数列中的元素从小到大相加的形式。元素与元素之间用加号连接。
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; }