美文网首页
算法训练1

算法训练1

作者: 王执姬 | 来源:发表于2018-06-24 18:14 被阅读0次

题目描述
把数字转化为lcd灯的表现形式,打印在控制台上,下面是0~9的lcd灯表示:

数字显示格式
示例
输入 910
示例一
输入 54321
示例二

注意每个数字之间有空格 结尾没有空格!

思路&代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define a dataR[0][1]
#define b dataR[1][2]
#define c dataR[2][2]
#define d dataR[2][1]
#define e dataR[2][0]
#define f dataR[1][0]
#define g dataR[1][1]

char output[3][1000];
int count =0;
void Append(int);
char*itoa(int value,char*string,int radix);
void AppendEX(int);
unsigned char DotFix[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//读入数据,输出数码管形式
int main(){
    int x;
    scanf("%d",&x);
    AppendEX(x);
    printf("%s\n%s\n%s\n",output[0],output[1],output[2]);
    return 0;
}
//添加大于10的函数
void AppendEX(int dr){
    char dataR[1000];int countR=0;
    itoa(dr,dataR,10);
    while(dataR[countR]!='\0'){
        Append((int)(dataR[countR]-'0'));
        countR ++;
    }
}
//添加小于10的函数
void Append(int dr){
    char dataR[4][4] = {"...","...","..."};
    unsigned char in = DotFix[dr];
    a=(in&(0x01<<0))?'_':'.';
    b=(in&(0x01<<1))?'|':'.';
    c=(in&(0x01<<2))?'|':'.';
    d=(in&(0x01<<3))?'_':'.';
    e=(in&(0x01<<4))?'|':'.';
    f=(in&(0x01<<5))?'|':'.';
    g=(in&(0x01<<6))?'_':'.';
    strcat(output[0],dataR[0]);
    strcat(output[1],dataR[1]);
    strcat(output[2],dataR[2]);
    strcat(output[0]," ");
    strcat(output[1]," ");
    strcat(output[2]," ");
    count ++;
}
//把int转换为string(itoa是广泛应用的非标准C语言和C++语言扩展函数)
//这个函数是从C11复制的
char* itoa(int num,char*str,int radix)
{
char index[]="0123456789ABCDEF";
unsigned unum;
int i=0,j,k;
if(radix==10&&num<0)
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num;
do{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
if(str[0]=='-')k=1;
else k=0;
char temp;
for(j=k;j<=(i-1)/2;j++)
{
temp=str[j];
str[j]=str[i-1+k-j];
str[i-1+k-j]=temp;
}
return str;
}

图片.png

运行结果

图片1.png
图片2.png

相关文章

  • 算法训练1

    1、在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

  • 算法训练1

    题目描述:把数字转化为lcd灯的表现形式,打印在控制台上,下面是0~9的lcd灯表示: 注意每个数字之间有空格 ...

  • 【NO.1】KNN-算法

    KNN(K-nearest-neighbor)-K最近邻算法 1、算法简介 1)已知训练样本(分类); 2)对测试...

  • 第六章 更多监督训练

    介绍Lunar Lander示例 监督训练没有训练集 使用遗传算法 使用模拟退火算法 遗传算法和模拟退火算法的训练...

  • 02-Adaboosting

    1、回顾boosting算法的基本原理 从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练...

  • 机器学习读书笔记 — KNN

    1.KNNkNN是一种分类的算法,这个算法的思路非常简单。对于给定的训练数据集,对于新输入的实例,在训练数据集中找...

  • 降维与度量学习

    1、kNN kNN算法即k近邻算法,是常用的有监督学习算法。它是懒惰学习的代表算法,没有显式的训练过程。kNN在收...

  • diploSHIC使用案例

    在有监督的机器学习的常规工作流程中,创建一个训练集,使用该集训练算法,验证训练后算法的准确性,然后最终将训练后算法...

  • 梯度下降法—随机梯度下降

    1.算法描述 批量梯度下降的主要问题是它要用整个训练集来计算每一步的梯度,训练集大时算法特别慢。相反,随机梯度下降...

  • 4.3训练数据集、测试数据集

    4.3训练数据集、测试数据集 1.判断机器学习算法的性能 测试我们的算法 train_test_split 将原始...

网友评论

      本文标题:算法训练1

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