入门训练 Fibonacci数列
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
样例输入
10
样例输出
55
样例输入
22
样例输出
7704
数据规模与约定
1 <= n <= 1,000,000。
#include <iostream>
using namespace std;
const int mod=10007;
const int maxn=1000000;
int F[maxn];
int main()
{
F[1]=F[2]=1;
int n;
cin>>n;
for(int i=3;i<=n;i++)
{
F[i]=(F[i-1]+F[i-2])%mod;
}
cout<<F[n];
return 0;
}
基础练习 字母图形
问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。
#include <iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int array[n][m];
for(int i=0;i<n;i++)
{
array[i][0]=65+i;
}
for(int j=0;j<m;j++)
{
array[0][j]=65+j;
}
for(int i=1;i<n;i++)
{
for(int j=1;j<m;j++)
{
array[i][j]=array[i-1][j-1];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<(char)array[i][j];
}
cout<<endl;
}
return 0;
}
基础练习 数列特征
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。
#include <iostream>
using namespace std;
int main()
{
int n;
int max,min,sum=0;
cin>>n;
int array[10000];
for(int i=0;i<n;i++)
{
cin>>array[i];
}
max=-10000;min=10000;
for(int i=0;i<n;i++)
{
if(array[i]>max)
{
max=array[i];
}
if(array[i]<min)
{
min=array[i];
}
sum+=array[i];
}
cout<<max<<endl;
cout<<min<<endl;
cout<<sum;
return 0;
}
注意-10000和10000