质因数分解并图形化打印
来源:互联网 发布:无主之地2 mac汉化 编辑:程序博客网 时间:2024/05/02 01:15
昨天做了一道编程题,感觉很有意思,因此把题意和代码放上,为各位同学提供方便
题意是:
将一个小于1000000的数质因数分解,并且按照从小到大的顺序 利用 - 和 | 和 * 打印出来
例子:
输入:
1
99999
输出:
以下是源代码(如有错误,欢迎指正):
#include"stdio.h"#include"stdlib.h"void pri_number(int num,int line){if(line==1){ if(num==1 || num==4)printf(" "); else printf(" - ");}if(line==2){if(num==0 || num==4 || num==8 || num==9){ printf(" | | ");}else if(num==1 || num==2 || num==3 || num==7){ printf(" | ");} else printf(" | ");}if(line==3){ if(num==0 || num==1 || num==7)printf(" "); else printf(" - ");}if(line==4){if(num==0 || num==6 || num==8){ printf(" | | ");}else if(num==1 || num==3 || num==4 || num==5 || num==7 || num==9){ printf(" | ");} else printf(" | ");}if(line==5){ if(num==1 || num==4 ||num==7)printf(" "); else printf(" - ");}}void prin(int* data,int num){int temp;int* out = (int*)malloc(sizeof(int)*10);int out_num=0;for(int i=1;i<=5;i++){for(int j=0;j<num;j++){out_num=0;temp = data[j];//分解一个数,比如 345分解成 3 4 5for(int k=0;k<10 && temp!=0;k++){out[out_num] = temp%10;out_num++;temp = temp/10;}for(int k=out_num-1;k>=0;k--){pri_number(out[k],i);}if(i==3 && j!=num-1) printf(" * "); //第三行打印*号,并且不是最后一个数else printf(" "); //其他的行打印空格}printf("\n");}}void main(){int in;int N;int* out = (int*)malloc(sizeof(int)*20);int out_num=0;scanf("%d",&N);for(int i=0;i<N;i++){scanf("%d",&in);out_num=0;for(int i=2;i <= in;){ if( in%i == 0 ){out[out_num] = i;out_num++;in = in/i;}else i++;}prin(out,out_num);}system("pause");}
0 0
- 质因数分解并图形化打印
- 分解质因数并输出详解
- 分解质因数
- 分解质因数
- 质因数分解
- 分解质因数
- 质因数分解
- 分解质因数
- 分解质因数
- 质因数分解
- 分解质因数
- 分解质因数
- 分解质因数
- 分解质因数
- 分解质因数
- 分解质因数
- 分解质因数
- 分解质因数
- 枚举用法实例
- mediawiki功能增加和优化问题
- js调试之控制台面板
- DOS环境下强制删除文件或非空文件夹
- 大热天华人社团及具体人数锐减
- 质因数分解并图形化打印
- Reachability 检测网络连接
- extjs-model讲解
- 19岁程序员在谷歌学到的5条经验教训
- 【JavaScript】focus()方法
- CCF 201403-4无线网络 (二维最短路)
- pthread 编程:互斥锁属性
- UGUI的Slider与Gameobject的结合使用
- CSAPP读书笔记——程序的机器级表示之栈帧结构