c语言问题啊啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言问题啊啊相关的知识,希望对你有一定的参考价值。

c语言问题啊啊6-2 使用函数输出指定范围内的Fibonacci数(20 分)本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。裁判测试程序样例:#include <stdio.h>int fib( int n );void PrintFN( int m, int n ); int main() int m, n, t; scanf("%d %d %d", &m, &n, &t); printf("fib(%d) = %d\n", t, fib(t)); PrintFN(m, n); return 0;/* 你的代码将被嵌在这里 */输入样例1:20 100 7输出样例1:fib(7) = 1321 34 55 89输入样例2:2000 2500 8输出样例2:fib(8) = 21No Fibonacci number

int fib(int n) int i, x1, x2, x; x=0; x1=1; x2=1; for (i=3; i<=n; i++) x=x1+x2; x1=x2; x2=x; if (n==1 || n==2) x=1; return x;void PrintFN(int m, int n) int i, count, index, flag; index=0; flag=0; i=1; while (fib(i) < 10000) i++; count = i; for (i = 1; i < count; i++) if (fib(i) >= m && fib(i) <= n) flag = 1; index++; if (index == 1) printf("%d", fib(i)); continue; printf(" %d", fib(i)); if (!flag) printf("No Fibonacci number"); putchar('\n');

#include "stdio.h"
int fib(int n)
    int a,b;
    for(a=b=1;n>1;b+=a,a=b-a,n--);
    return a; 

void PrintFN(int m,int n)
    int x,t,f;
    x=f=0;
    while(fib(++x)<m);
    while((t=fib(x++))<=n)
        printf(fib(x)<n ? "%d " : "%d\\n",t);
        f++;
    
    if(!f)
        printf("No Fibonacci number.\\n");

int main(int argv,char *argc[])
    int m,n;
    printf("Input m & n(int 0<m<=n<=10000)...\\n");
    if(scanf("%d%d",&m,&n)!=2 || m<1 || n>10000 || m>n)
        printf("Input error, exit...\\n");
        return 0;
    
    PrintFN(m,n);
    return 0;

运行样例:

参考技术A 跳过if后的print语句,防止两次打印同一个数。
if 只有在第一次循环,index=1时才执行,而if中执行的内容又与if外的相同,所以要避免这种矛盾

巧用java的 MessageFormat来拼字符串

该类可以进行占位符填写
如下
String msg = "啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊{0}{1}{2}{3}{4}{5}{6}{7}{8}哦哦哦哦哦哦哦哦哦哦哦哦";
Object [] array = new Object[]{"A","B","C","D","E","F","G","H","I",};
String value = MessageFormat.format(msg, array);
System.out.println(value); // 输出:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊ABCDEFGHI哦哦哦哦哦哦哦哦哦哦哦哦

如何让他不解析指定的中括号呢?
将中括号使用单引号引起来
String str=" ‘{‘code:{1},info:{2},message:{3} ‘}‘ ";

这种可以避免过于频繁的操作字符串了








以上是关于c语言问题啊啊的主要内容,如果未能解决你的问题,请参考以下文章

怎样用C语言求平均数

R语言如何更改工作目录??

大学公选课:C语言程序设计难不难?

利用pycharm 手动输入一个字符串,把字符串中数字加密

STL map vector(不定长数组)

在linux系统中编译C