蓝杯十六

作者: 逍遥_9353 | 来源:发表于2017-12-29 20:19 被阅读20次

一、/*回形取数

问题描述  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。

样例输入

3 3

1 2 3

4 5 6

7 8 9

样例输出

1 4 7 8 9 6 3 2 5

样例输入

3 2

1 2

3 4

5 6

样例输出

1 3 5 6 4 2*/

#include<stdio.h>

int main() {   

int n,m,count;   

scanf("%d%d",&n,&m); 

count=n*m;   

int a[n][m],i,j;   

for(i=0; i<n; i++) {       

for(j=0; j<m; j++) {         

scanf("%d",&a[i][j]);       

          }   

}    //以上是数的输入

  int t=0;//t用于记录圈数 

i=0;//数的横坐标   

j=0;//数的纵坐标   

while(count) {    //省略if(i==t&&j==t&&count),判断坐标是否在左上角的节点,因为条件必然成立       

while(i<n-t&&count) {//从左上角向下走           

if(i==0&&j==0) {//第一个数的输出格式             

printf("%d",a[0][0]);             

i++;           

}

else             

  printf(" %d",a[i++][j]);           

count--;        }       

i--;     

j++;       

//省略if(i==n-1-t&&j==t),左下角的节点的判断       

while(j<m-t&&count) {//向右走           

printf(" %d",a[i][j++]);         

count--;        }     

j--;     

i--;        //省略if(i==n-1-t&&j==m-1-t&&count),右下角节点的判断     

while(i>=t&&count) {//向上走           

printf(" %d",a[i--][j]);         

count--;        }     

  i++;       

j--;        //省略if(i==t&&j==m-1-t),右上角节点的判断     

while(j>t&&count) {//向左走           

printf(" %d",a[i][j--]);         

count--;        }       

j++;       

i++;       

t++;//圈数加一    }   

return 0;

}

二、/*递归求二项式系数值

问题描述

样例输入

一个满足题目要求的输入范例。

3 10

样例输出

与上面的样例输入对应的输出。

数据规模和约定

  输入数据中每一个数的范围。

  例:结果在int表示时不会溢出。

*/

#include <stdio.h> 

int ditui(int k,int n){ 

    if(k>n/2) k=n-k; 

    if(k==0||n==1) return 1; 

    else

return ditui(k,n-1)+ditui(k-1,n-1); 

int main() { 

    int k,n; 

    scanf("%d%d",&k,&n); 

    printf("%d",ditui(k,n)); 

    return 0; 

三、/*十六进制转十进制

问题描述

  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

*/

#include<stdio.h>

int main()

{

    char in[9];

    int i;

    long long int out;

    gets(in);

    out=0;

    for(i=0;in[i]!='\0';i++)

    {

        if(in[i]>='0'&&in[i]<='9')

        out=out*16+(in[i]-'0');

        else

        out=out*16+(in[i]-'A'+10);

    }

    printf("%I64d\n",out);

    return 0;

}

蓝杯十六 蓝杯十六 蓝杯十六 蓝杯十六 蓝杯十六 蓝杯十六

相关文章

  • 蓝杯十六

    一、/*回形取数 问题描述回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵...

  • 蓝杯三十六

    算法训练 数位分离 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 编写一个程序,输入一个1...

  • 蓝杯四十六

    算法训练 最长字符串 时间限制:1.0s 内存限制:512.0MB 提交此题 求出5个字符串中最长的字符串。每...

  • 蓝杯二十六

    /*算法训练 动态数组使用 时间限制:1.0s 内存限制:512.0MB 提交此题 从键盘读入n个整数,使用动...

  • 2021欧洲足球杯(二十二)

    2021欧洲足球杯(二十二) 昨天凌晨三时,第十六届欧洲足球杯在英国伦敦的温布利大球场迎来了蓝衣军团...

  • 蓝杯二十

    /*数的读法 问题描述Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万...

  • 蓝杯十八

    /*矩形面积交 问题描述平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对...

  • 蓝杯四十

    算法训练 统计单词个数 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一个长度不超过200...

  • 蓝杯十二

    一、/*分糖果 问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都...

  • 蓝杯九

    /*阶乘计算 问题描述 输入一个正整数n,输出n!的值。其中n!=1*2*3*…*n。算法描述n!可能很大,而计算...

网友评论

    本文标题:蓝杯十六

    本文链接:https://www.haomeiwen.com/subject/zsewgxtx.html