c++输入一个正整数n,求第n个斐波那契数

作者&投稿:钭绿 (若有异议请与网页底部的电邮联系)
c++给出一个整数n,其中n小于等于2147483647,请统计n的因数的个数.~

int n;cin >> n;int num = 0;for (int i = 1; i <= n; ++n){ if (n % i == 0) ++ num;{

n--不是n++

【解题思路】
斐波那契数,简单的讲就是除了第1项和第2项是1以外,其它的每一项都等于前两项的和。比如:1,1,2,3,5,8,13……,所以要求出第n项的值,需要从第3项开始,用循环逐项往后求,每次保存前两项,一直求到循环变量等于n为止。具体代码如下:
【程序代码】
int Fibonacci(int n)           //求斐波那契数第n项的值
{int a,b,s,i;                  //a,b为前2项,s为第n项,i是循环变量
 a=b=1;s=1;                    //初始化前2项和第n项的值
 for(i=3;i<=n;i++)             //从第3项开始逐项求值
    {s=a+b;                    //求出第i项的值
     a=b;b=s;}                 //重置a和b的值,为求正一项作准备
return s;}
【程序示例】
#include <iostream>                    //控制台操作头文件

int main()                             //主函数
{int n,s,i;                            //第n项值为s,i是循环变量
 do{printf("请输入一个正整数(0退出):");//输入提示
    scanf("%d",&n);                    //输入第n项
    if(n==0) break;                    //输入0退出循环结束函数
    if(n<0) {printf("
");continue;}   //如果输入负数重新输入
    printf("%d项的斐波那契数是:",n);   //显示提示
    for(i=1;i<=n;i++)                  //用一个循环输入每一项
       {s=Fibonacci(i);                //求出第i项的值
        printf("%d ",s);}              //示示第i项的值
    printf("

");}while(1);          //设置一个无穷循环
 printf("
");                         //换行
 system("PAUSE");                      //暂停屏幕查看结果
 return 0;}                            //结束程序
【运行结果】
以上程序在DEV C++运行通过,截图如下:




#include<iostream>
#include<cmath>
using namespace std;
int fibonaci(int n) {
if (n <= 0) {
return -1;
}
if (n == 1 || n == 2) {
return 1;
}
else {
return fibonaci(n - 2) + fibonaci(n - 1);
}
}
int main()
{
for (int i = 1; i <= 30; i++) {
cout << fibonaci(i) << endl;
}

    return 0;
}


如图




用C语言编程从键盘输入一个正整数,判断其个位数是否为5,若是5则输出...
include <stdio.h> int main(){ int five;printf("输入一个整数:");scanf("%d",&five);while(five>10){ five = five%10;} if(five == 5)printf("yes");else printf("no");return 0;}

. c语言编程:输入一个正整数,统计该数的各位数字中零的个数,并求各位...
include <stdio.h> int main(){ int n,t,count=0,max=0;printf("请输入正整数n: ");scanf("%d",&n);while(n){ t=n%10;if(t==0)count++;else if(t>max)max=t;n=n\/10;} printf("count=%d,max=%d\\n",count,max);return 0;} count:0的个数。max:各位数字中的最大者 ...

输入一个正整数n,再输入n个整数,输出最小值 c语言
你题目有没有写全,如果按照你这个题目,没有规定输入整数的位数,考虑要输入任意位数的数字,那么数字就不能使用已有的整数类型来保存(比如int只有4个字节大小,超出就溢出了)。我写的是任意长度的数字输入,比较取最小值。(你内存够就行)include <stdio.h>#include <malloc.h>#include <string....

c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行...
include <stdio.h> int weishu(long n,int a[]){int i=0;while(n){ a[i++]=n%10;n\/=10;} return i;} void main (void){ long n;int k,i,j,t,a[20];scanf("%ld",&n);printf("原数:%ld\\n",n);k=weishu(n,a);printf("位数:%d\\n",k);for(i=0;i<k-1;i++)...

C语言编程 输入一个不多于九位的正整数,要求输出它是几位数
此程序可通过以下步骤实现:1、输入一个正整数 2、将整数转换为字符串(使用sprintf函数)3、求字符串的长度(strlen函数),即正整数的位数 代码如下:include <stdio.h>#include <string.h>int main(){long num;char str[20];scanf("%ld", &num);sprintf(str, "%ld", num);printf("%d", ...

输入一个正整数n(1< n ≤10),再输入n个整数,将最小值与第一个数交换...
include <stdio.h> int main(void){ int n,i,a[10],max,min,temp,r,p;scanf("%d",&n);for (i=1;i<=10;i++)scanf("%d",&a[i]);min=a[1];for (i=1;i<=n;i++){ if (a[i]<a[1]){ min=a[i];r=i;} } temp=a[1],a[1]=min,a[r]=temp;max=a[n];for...

C语言题目,输入一个正整数n,输出该数各位数字的积 例如,输入1234 输出...
include <stdio.h> int main(){ int num,s=1;scanf("%d",&num);while(num>0){ s=s*(num%10);num\/=10;} printf("每位数之积是:%d\\n",s);return 0;}

由键盘输入一个正整数,找出大于或者等于该数的第一个素数
Private Sub form_click()Dim p As Integer, x As Integer, flag As Boolean flag = False '这里应是false,否则无法执行 x = InputBox("请输入一个正整数", "输入正整数")Do While Not flag '只有标记为真时,才执行 p = 2 '1不可以为素数,所以选2 flag = True '把标记设为真 Do ...

C语言 从键盘上输入一个正整数,计算并输出该数的各位数字之和
输出该数的各位数字之和的源代码如下:include <stdio.h> int fun(int n){ int i;int sum=0;if(n>1000||n<0){ puts("输入的数字超出范围!"); \/\/ 错误信息提示 } else { for(i=2;i<n;i++) \/\/ 循环遍历n,取出因子,并进行累加 { if(0 == n%i){ sum+=i;} } } return...

C语言编程:输入一个正整数,输出如下图形,例如输入5,输出的图形如下...
include<stdio.h> int main(){ int i,j,k,n;printf("请输入一个数字:");scanf("%d",&n);for(i=1,k=-1;i<=n;i++,k+=2){ for(j=0;j<n-i;j++) printf("%c",32);printf("%d",i);if(k>0){ for(j=0;j<k;j++) printf("%c",32);printf("%d",i);} printf(...

威县19814417504: 用c++求斐波那契数列 -
濮钥金黄: 最简单的用递归呗 #include using namespace std; int fib(int n) { if(n==1){return 1;} else if(n==2){return 2;} else return fib(n-1)+fib(n-2); } int main() { int n; cin >> n; cout << fib(n) << endl; return 0; }

威县19814417504: 编写程序,从键盘输入一个正整数n,求2~n之间所有的素数之和. 用c++编程 新手 帮忙解释一下 谢谢 -
濮钥金黄: #include <iostream> #include<string> #include<iterator> #include<vector> #include<algorithm> #include<set> #include <cstring> #include<stdio.h> using namespace std; #include <iomanip> using namespace std; #include <string> #include <...

威县19814417504: 怎样用C++编写这道题:从键盘输入一个正整数N,请输出大于N的第3个素数. -
濮钥金黄: #include <iostream.h>#include <cmath> int ifprime(int n) { int flag=1; if (n==1) return 0; for (int i=2;i<=sqrt(n);i++) { if (n%i==0) { flag=0; break; } } if (flag==1) { return 1; } else return 0; }int main() { int m,i=3; cout<<"INPUT A nummber:"; cin>>m; while ...

威县19814417504: (C++程序)输入一个正整数N,计算N个数里面有多少奇偶数 -
濮钥金黄: #include<stdio.h> int main(){ int n; int l; int ou=0,ji=0; scanf("%d",&n); while(n--){ scanf("%d",&l); if(l%2==0) ou++; else ji++; } printf("%d,%d",ji,ou); //这里根据具体格式调整一下,}你也可以将输出贴出来,我来调整

威县19814417504: C++编程:从键盘输入一个正整数n,编程计算1~n之间的奇数和. -
濮钥金黄: //#include "stdafx.h"//if the vc++6.0, with this line. #include using namespace std; int main(int argc,char *argv[]){ int n,i,s; cout << "input n(int n>=0)...\nn="; if(!(cin >> n) || n<0){ cout << "input error, exit...\n"; return 0; } for(s=0,i=1;i<=n;s+=i,i+=2)...

威县19814417504: c语言 输入任一整数n,输出第n个素数. -
濮钥金黄: bool IsPrime(int n){ //是否素数if (n==1) return false;for (int i=2;i*i<=n;i++)if (n%i==0) return false;return true; }void main(){ int n,m=0; scanf("%d",&n); for (int i=1;mif (IsPrime(i)) m++; printf("%d\n",i-1); }

威县19814417504: C++源程序:输入一个正整数n ,输出2/1+3/2+5/3+8/5+……的前n项100项之和 -
濮钥金黄: 1.C语言: #include <stdio.h> void main() { int a=2; int b=1; int N=0; float Y=0; printf("请输入N:"); scanf("%d",&N); while(a<=N) {Y=Y+a/b;b=a;a=a+b;} printf("前 %d 项之和是:%.2f\n",N,Y); } 2.C++: #include <iostream> using ...

威县19814417504: C++编程 输入一个正整数n(1<n<=10),再输入n个整数,输出其最大值及其下标 -
濮钥金黄: #include<stdio.h> main() { int n,i,j; scanf("%d",&n); int a[11]; for(i=0;i<n;i++) scanf("%d",&a<i>); for(j=0;j<n;j++) { if(a[0]<a[j]) { a[0]=a[j]; i=j; } else if(a[0]==a[j]) { a[0]=a[j]; if(i>j) { i=j; } } } printf("%d%d",a[0],i); } 扩展资料:scanf函数用法:scanf...

威县19814417504: C++!! 编写子函数求Fibonacci数列(费波纳契数列)的前n个数. -
濮钥金黄: #include <stdio.h> int main(void) { unsigned int f1 = 1, f2 = 1, f; int n; int i; printf("输入n的值:"); scanf("%d", &n); printf("%12u%12u", f1, f2); for (i = 3; i <= n; ++i) { printf("%12u", f = f1+f2); f1 = f2; f2 = f; if (i % 4 == 0) printf("\n"); } printf("\n"); return 0; }

威县19814417504: 用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数 -
濮钥金黄: /*用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数*/#include"stdio.h" int count(int n) { int i,j,c=0; for(i=1;i<=n;i++) { j=i; while(j!=0) { if(i%10==1) /*判断位数中是否有1*/ { c++; } j=j/10; /*让数除以十让他原来的高位变为低位,即原来的十位变成个位*/ } } return c; } main() { int c,n; printf("input n:\n"); scanf("%d",&n); c=count(n); printf("%d\n",c); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网