某虎公司的笔试

这篇博客讲述了作者在某公司笔试中遇到的两个编程题目,包括输出数字的质因数并用像素打印,以及判断输入数据的类别。虽然在考试时未能完成第一题,但事后作者使用队列处理并完善了质因数的代码实现。
摘要由CSDN通过智能技术生成

笔试有两个编程题,第一个是输出每个数字的质因数,并用5*3的像素打印出来;第二个是判断输入数据的类别。第二个相对容易一些,第一个当时没写完,题目如下:

输入:

2
4

输出:

 -
  |
 -
|
 -
 -   -
  |   |
 - * -
|   |
 -   -

当时想到用队列处理,把质因数获取之后,输出形式没来得及做,回去之后又完善了下,代码如下:


#include <stdio.h>
#include <stdlib.h>

struct Result{
    char data;
    struct Result *next;
};

typedef struct Result * resPtr;

void enqueue(resPtr *head, resPtr *tail, int value);
void printQueue(resPtr head);
void addqueue(resPtr *head, resPtr *tail, int n);
void printNum(resPtr head);

int main(int argc, char **argv)
{
    
    int n,i;
    char c;
    
    resPtr head = NULL;
    resPtr tail = NULL;
    
    while(1){
        scanf("%d",&n);
        if(n < 1)
            break;
        for (i = 2; i *i <= n;)
        {
            if (n % i == 0)
            {
                addqueue(&head,&tail,i);
                enqueue(&head,&tail,0);
                n /= i;
            }
            else
              i++;
            }
            addqueue(&head,&tail,n);
            enqueue(&head,&tail,0);
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值