问题描述
已知一个斐波纳契数列中的数字依次为1, 1, 2, 3, 5, 8, 13, 21, 34, 55 … 。请判断该数列中第n个数字(n从1开始计数)是不是素数。
输入说明
输入一个整数n(1
判断斐波纳契数列中的第n个数字是不是素数,如果是输出yes,否则输出该数字。
输入样例
样例1输入
6
样例2输入
4
输出样例
样例1输出
8
样例2输出
yes
#include
int is_prime(int x)
{
int i=0;
if(x==2)
return 1;
else
{
for(i=2;i
if(x%i==0)
return 0;
}
}
return 1;
}
int main()
{
int i=0,n=0,f1=1,f2=1,f3=0,m=0;
scanf("%d",&n);
if(n==2)
{
m=1;
}
if(n>2)
{
for(i=2;i
f3=f1+f2;
f1=f2;
f2=f3;
}
m=f3;
}
if(is_prime(m)==1)
{
printf("yes");
}
else
{
printf("%d",m);
}
return 0;
}
问题描述
有一种形式的Fibonacci数列定义如下:
F(0)=7
F(1)=11
F(n)=F(n-1)+F(n-2)(n>=2)
按以下声明写一个函数fib
int fib(int n);
fib函数用来计算参数n对应的F(n)。
fib(n)的返回值是F(n)
输入说明
函数参数为一个整数n(0<=n<40)。
输出说明
函数返回值为整数,表示n对应的F(n)值。
输入
2
输出
18
#include
int fib(int x)
{
int i=0,f1=7,f2=11,f3=0;
if(x==0)
return f1;
else if(x==1)
return f2;
else
{
for(i=1;i
f3=f1+f2;
f1=f2;
f2=f3;
}
return f3;
}
}
int main()
{
int n=0;
scanf("%d",&n);
printf("%d",fib(n));
return 0;
}
已知数组array[10]={1,2,3,4,5,6,7,8,9,10};要求把下标从0到p(p从键盘输入)的数组元素平移到数组的最后,并输出平移后的数组。
输入格式:输入一个整数p;
输出格式:共一行,输出平移后的数组,数字之间用空格分隔
示例:
输入:3
输出:5 6 7 8 9 10 1 2 3 4
#include
int main()
{
int arr[10]={0};
int i=0,n=0;
for(i=1;i<=10;i++)
{
arr[i-1]=i;
}
scanf("%d",&n);
for(i=n+1;i<10;i++)
{
printf("%d ",arr[i]);
}
for(i=0;i<=n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
题目描述:
定义一个二维字符数组str[10][20],行号表示单词序号,列号表示单词最大长度,
输入一个正整数N(N≤10),表示单词数,
使用函数wd_sort()完成单词的排序,按字母顺序从小到大排列单词
输入描述:
输入一个正整数N和一个二维字符数组str,字母为小写,行号表示单词序号,列号表示单词最大长度。
输出描述:
格式输出:排序后的单词之间用换行分隔。
输入样例:
3
word
fish
egg
输出样例:
egg
fish
word
提示:
使用strcmp()、strcpy()和strlen()函数,头文件string.h。
#include
#include
int main()
{
int n=0,i=0,j=0;
scanf("%d",&n);
char str[10][20];
char str1[20];
for(i=0;i
scanf("%s",&str[i]);
}
//冒泡排序
for(i=0;i
for(j=0;j
if(strcmp(str[j],str[j+1])>0)
{
strcpy(str1,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],str1);
}
}
}
//输出
for(i=0;i
printf("%s\n",str[i]);
}
return 0;
}
问题描述:
有一个字符串,包含n个字符。写一个函数,将此字符中从第m个字符开始的全部字符复制成为另外一个字符。(注意:必须用指针数组处理)
输入样例:
abcdefg
5
输出样例:
efg
输入样例:
qazxsw
8
输出样例:
error
#include
#include
void copy(char* p,char* p1,int x,int y)
{
int i=0,j=0;
char t;
for(i=x-1,j=0;i
*(p1+j)=*(p+i);
}
}
int main()
{
char arr[50]={'\0'};
char arr1[50]={'\0'};
gets(arr);
int n=strlen(arr);
int i=0,m=0;
scanf("%d",&m);
if(m<=n)
{
copy(arr,arr1,m,n);
puts(arr1);
}
else if(m>n)
{
printf("error");
}
return 0;
}