C++搜索题目:
B.神奇的数列(chain.exe1S)一位数学家,他有一天发现了一个很有趣的数列,这个数列有一个很有趣的性质:a1=1,对于其它数列中的数ak=ai+aj(1<=i<=...
B.神奇的数列(chain.exe 1S )一位数学家,他有一天发现了一个很有趣的数列,这个数列有一个很有趣的性质:a1=1,对于其它数列中的数ak=ai+aj (1<=i<=j<=n),现在给出数列的最后一个an,求使n最小的数列。
输入文件:只有一行an(an<=1000)
输出文件:第一行是n,第二行是数列,每个数之间有且仅有一个空格。
例子:
chain.in
4
chain.out
3
1 2 4
只有 兔子和小强 回答的是对的
但是对于1000这样的数据,想在一秒出解是不可能的
其余同学的应该没有理解题目意思,本题有很多优化…… 展开
输入文件:只有一行an(an<=1000)
输出文件:第一行是n,第二行是数列,每个数之间有且仅有一个空格。
例子:
chain.in
4
chain.out
3
1 2 4
只有 兔子和小强 回答的是对的
但是对于1000这样的数据,想在一秒出解是不可能的
其余同学的应该没有理解题目意思,本题有很多优化…… 展开
2个回答
2012-08-09
展开全部
C语言程序
//利用循环输出前40项
#include <stdio.h>
int main()
{
long fib[41] = {0,1};
int i;
for(i=2;i<41;i++)fib[i] = fib[i-1]+fib[i-2];
for(i=1;i<41;i++)printf("F%d==%d\n",i,fib[i]);
getch();
return 0;
}
//利用递归实现指定项输出
第n项和。(1<n<25)
#include<stdio.h>
void main()
{
long int f1,f2;
int n,i,c;
scanf("%d",&n);
f1=1;f2=1;
for(i=1;i<=n;i++)
{
c=i+1;
printf("%dItem=%ld %dItem=%ld ",i,f1,c,f2);
if(i%2==0)printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
C#语言程序
public class Fibonacci
{
//NormRen
static void Main(string[] args)
{
int x = 0, y = 1;
for (int j = 1; j < 10; j++, y = x + y, x = y - x)
Console.Write(y + " ");
}
}
//利用循环输出前40项
#include <stdio.h>
int main()
{
long fib[41] = {0,1};
int i;
for(i=2;i<41;i++)fib[i] = fib[i-1]+fib[i-2];
for(i=1;i<41;i++)printf("F%d==%d\n",i,fib[i]);
getch();
return 0;
}
//利用递归实现指定项输出
第n项和。(1<n<25)
#include<stdio.h>
void main()
{
long int f1,f2;
int n,i,c;
scanf("%d",&n);
f1=1;f2=1;
for(i=1;i<=n;i++)
{
c=i+1;
printf("%dItem=%ld %dItem=%ld ",i,f1,c,f2);
if(i%2==0)printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
C#语言程序
public class Fibonacci
{
//NormRen
static void Main(string[] args)
{
int x = 0, y = 1;
for (int j = 1; j < 10; j++, y = x + y, x = y - x)
Console.Write(y + " ");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
不懂追问
#include <iostream>
using namespace std;
int main()
{
int str[1000];
int an,i;
while(scanf("%d",&an)!=EOF)
{
str[0]=an;
for(i=0;str[i]!=1;i++) {
if(str[i]%2==0) {
str[i+1]=str[i]/2;
while(str[i+1]+str[i]<str[i-1]&&2*str[i]!=str[i-1]&&i>=1&&str[i+1]>1)
str[i+1]++;
}
else {
str[i+1]=str[i]/2+1;
while(str[i+1]+str[i]<str[i-1]&&i>=1&&2*str[i]!=str[i-1]&&str[i+1]>1)
str[i+1]++;
}
}
printf("%d\n",i+1);
while(i>=0)
printf("%d%c",str[i--],i==0? '\n':' ');
}
}
#include <iostream>
using namespace std;
int main()
{
int str[1000];
int an,i;
while(scanf("%d",&an)!=EOF)
{
str[0]=an;
for(i=0;str[i]!=1;i++) {
if(str[i]%2==0) {
str[i+1]=str[i]/2;
while(str[i+1]+str[i]<str[i-1]&&2*str[i]!=str[i-1]&&i>=1&&str[i+1]>1)
str[i+1]++;
}
else {
str[i+1]=str[i]/2+1;
while(str[i+1]+str[i]<str[i-1]&&i>=1&&2*str[i]!=str[i-1]&&str[i+1]>1)
str[i+1]++;
}
}
printf("%d\n",i+1);
while(i>=0)
printf("%d%c",str[i--],i==0? '\n':' ');
}
}
追问
你这个明显错的!你没看清题意
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询