| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 852 人关注过本帖
标题:可以从键盘输入一个数来指定数组的值吗
只看楼主 加入收藏
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
可以从键盘输入一个数来指定数组的值吗
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
    int n;
    cin>>n;
    int F[n];
    F[1]=1;
    F[2]=1;
    int i;
    for(i=3;i<n;i++)
        F[i]=(F[i-1]+F[i-2])%1007;
    cout<<setw(15)<<F[i]<<endl;
    return;
}
搜索更多相关主题的帖子: 键盘 include 
2015-04-07 23:43
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:1 
试下编译运行不就可以了。据我所知好像不行。
2015-04-08 10:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:4 
demo

程序代码:
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;

int main( void )
{
    size_t n;
    cin >> n;
    vector<int> F( n, 0 );

    if( F.size() > 0 )
        F[0] = 1;
    if( F.size() > 1 )
        F[1] = 1;

    for( size_t i=2; i<n; ++i )
        F[i] = (F[i-1]+F[i-2])%1007;

    if( !F.empty() )
        cout << setw(15) << F.back() <<endl;

    return 0;
}

2015-04-08 11:19
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:2 
用动态内存分配
int *p,n;
cin>>n;
p=mew int[n];

一片落叶掉进了回忆的流年。
2015-04-08 13:22
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 3楼 rjsp
呐,问一下size_t是什么数据类型?

[ 本帖最后由 一条沙丁鱼 于 2015-4-8 14:52 编辑 ]
2015-04-08 14:23
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 3楼 rjsp
还有最后一个if语句是啥意思啊,就是F.empty还有F.back?
2015-04-08 15:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:1 
你是不是求 斐波那契数列 每项模除1007的结果? 1 1 2 3 5 8 13

程序代码:
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;

int main( void )
{
    unsigned n;
    cin >> n;

    unsigned a = 1;
    unsigned b = 0;
    for( unsigned i=0; i!=n%108; ++i ) // n%108 是因为每108次为一个相同序列的循环
    {
        unsigned c = (a+b)%1007;
        a = b;
        b = c;
    }
    cout << b << endl;

    return 0;
}

2015-04-08 16:35
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:1 
还有一个最快速的方法就是 建立一个108项的数组,直接查表就行了,时间复杂度为 O(1)
2015-04-08 16:36
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 7楼 rjsp
是,题目要求这样:
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
2015-04-08 17:34
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 8楼 rjsp
除了题目要求外,还有时间和内存的限制
时间限制:1.0s   内存限制:256.0MB
2015-04-08 17:37
快速回复:可以从键盘输入一个数来指定数组的值吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038511 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved