2020-11-24

题目1:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)示例:
输入0输出0 输入1输出1
输入10输出89
方法:先写出前面几个数的跳法,然后发现是斐波那契数列。直接上手。
代码:

#include<stdio.h>
int main()
{
    int i=0,s,k,t,m=1,n=0;
    printf("台阶的阶数是");
    scanf("%d",&k);
    while(i<k)
    {
        s=n+m;
        t=m;
        m=s;
        n=t;
        i++;
    }
    printf("方法是%d种",s);
    return 0;
}

运行结果:
在这里插入图片描述
题目二:顺时针螺旋矩阵
给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例1:
输入:
[1,2,3], [4,5,6], [7,8,9] 输出:[1,2,3,6,9,8,7,4,5]
方法:首先先确定好边界,在一个循环里面进行4次循环,并且判断是否结束。
代码:

#include<stdio.h>
int main()
{
    int i,j,n,k=0,m,t=1;
    scanf("%d%d",&n,&m);
    int a[n][m];
    for(i=0;i<n;++i)
    for(j=0;j<m;++j)
    scanf("%d",&a[i][j]);
    int s=0,x=n-1,z=0,y=m-1;
    while(k<n*m){
        for(i=s,j=z;j<=y;j++){
            if(k==n*m)
                break;
                printf("%d  ",a[i][j]);k++;
                }
        ++s;
        for(i=s,j=y;i<=x;i++){

             if(k==n*m)
                break;
                printf("%d  ",a[i][j]);k++;
        }
        --y;
        for(i=x,j=y;j>=z;j--){

        if(k==n*m)
                break;
            printf("%d  ",a[i][j]);k++;

        }
        --x;
        for(i=x,j=z;i>=s;i--){

             if(k==n*m)
                break;
                printf("%d  ",a[i][j]);k++;
        }
        ++z;
    }
    return 0;
}

运行结果:
在这里插入图片描述

题目3:做出一个进制转换,输入一个Int范围的十进制整数,输入一个你想转换的进制(2~16)进制。输出你的计算结果。
实例:
输入 243 2 输出 11110011(输入一个十进制的数243,对应转换的为2进制,输出结果11110011)
输入 243 16 输出结果为F3 输入 243 8 输出结果为363
方法:要搞懂进制到底是怎么转换的,然后其次是一个进制内的数如果超过了10就得用a,b,c,d,e,f来代替。
代码:

#include<stdio.h>

int main()
{
    int a[100],i,j,n,t,m=0;
    printf("请输入要转换的进制");
    scanf("%d",&t);
    printf("请输入要转换的数");
    scanf("%d",&j);
    for(i=0;;i++){
            if(j<t)
            {
                a[i]=j;
                m++;break;
            }
            a[i]=j%t;
            j=j/t;
            m++;
    }
    for(i=m-1;i>=0;i--)
    {
        switch(a[i]){
        case 10:printf("a");break;
        case 11:printf("b");break;
        case 12:printf("c");break;
        case 13:printf("d");break;
        case 14:printf("e");break;
        case 15:printf("f");break;
        default :printf("%d",a[i]);break;
        }
    }
    return 0;
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值