【问题描述】
每个立方数都是一个连续的奇数序列之和。编写一程序,输入一个整数(2 <= n <= 20),输出构成n的立方的最长连续奇数序列(即:起始奇数最小的序列)的最小奇数和序列长度。
【输入形式】
从控制台输入整数n(2 <= n <= 20)。
【输出形式】
在标准输出上输出最长连续奇数序列的最小奇数和序列长度,中间用一个空格分隔。
【输入样例】
4
【输出样例】
1 8
【样例说明】
输入的整数为4,其立方为64,构成64的连续奇数序列共有3个,分别是"1 3 5 7 9 11 13 15"、"13 15 17 19"和"31 33",第一个最长,其第一个奇数为1,长度为8,所以输出:1 8
#include<stdio.h>
#include<math.h>
int main(){
int i,k,n,m,sum,count;
scanf("%d",&n);
m=pow(n,3);
for(i=1;i<=pow(n,3);i+=2){
sum=0;
count=0;
for(k=i;k<=pow(n,3);k++){
if(k%2!=0){
sum+=k;
count++;
}
if(sum >= m)
break;
}
if(sum == m)
break;
}
printf("%d %d",i,count);
return 0;
}