菜鸟编程学习(python&C--005)
Python 练习实例6(Python 100例)
题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)
程序代码:
方法一:
a=b=1
n = int(raw_input('n:'))
if n==1:
print 0
elif n==2 and n==3:
print 1
else:
for i in range(3,n,2):
a=a+b
b=a+b
if n%2==0:
print a
else:
print b
方法二:
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
# 输出了第10个斐波那契数列
print fib(10)
13.无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波那契数。(第1个、第二个都为1) (南阳理工acm)
输入
第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
输出
对每组输入n,输出第n个Fibonacci数
样例输入
3
1
3
5
样例输出
1
2
5
程序代码:
#include <stdio.h>
int main()
{
int a[5],b[100],i,j,n;
scanf("%d",&j);
for(i=0;i<j;i++)
{
scanf("%d",&a[i]);
}
for (n=2;n<20;n++)
{
b[0]=0;
b[1]=1;
b[n]=b[n-1]+b[n-2];
}
for(i=0;i<j;i++)
{
n=a[i];
printf("%d\n",b[n]);
}
return 0;
}
【程序33】题目:学习gotoxy()与clrscr()函数 (c语言经典编程实例100题)
程序分析:
程序源代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "conio.h"
#include "windows.h"
int textbackground(short iColor)
{
HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbInfo;
GetConsoleScreenBufferInfo(hd, &csbInfo);
return SetConsoleTextAttribute(hd, (iColor<<4)|(csbInfo.wAttributes&~0xF0));
}
void gotoxy(int x, int y)
{
COORD coord = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);//GetStdHandle获取标准输出设备句柄;两个参数分别是指定哪个窗体,具体位置
}
void main(void)
{
printf("----------------fdmsaf\r\n");
//clrscr();
system("CLS");//system("CLS");/*清屏函数:在VS2010中直接不能调用clrscr,参考网上大神做了以上函数*/
textbackground(2);
gotoxy(1, 5);/*定位函数*/
cprintf("Output at row 5 column 1\n");
textbackground(3);
gotoxy(20, 10);
cprintf("Output at row 10 column 20\n");
system("pause");
}