MIPS汇编练习
来源:互联网 发布:阿里云购买云服务器 编辑:程序博客网 时间:2024/06/11 03:27
【问题描述】输入一个高精度的大正整数S(S最长可达240位),去掉其中任意N位数字后剩下的数字按原次序组成一个新的正整数S’。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数S’最小。【输入形式】输入有两行:1.第一行是大整数S。其中S最长可达240位。 2.第二行是整数N。S、N均以非0数字开头。【输出形式】输出有一行,是在S中删除N位后所得的最小数字S’。【样例输入1】1785434【样例输出1】13【样例输入2】10021【样例输出2】002【样例说明】样例1中输入整数S=178543,N=4,要求在178543中删除4位,使剩下的数字最小。正确答案为S’ = 13。样例2中输入整数S=1002,N=1,删完一位后S’ = 002,而不是2,即2之前的0也必须输出。【运行时限】程序一次运行的最长时间限制在15秒内,超出则认为程序错误。【算法提示】将整数看作字符串形式读入;删数时,从前往后寻找第一个比后一个数字大的数字,然后删除之,按照这种方法删除N个数字即得最小数字。【评分标准】该题要求输出一个大整数的各位数字。结果完全正确得20分,每个测试点4分。上传C语言文件名为delete.c。 .data array:.space 4000endinput:.byte '\n'.textli $t0,0input:li $v0,12syscall move $t1,$v0sll $s0,$t0,2sw $t1,0($s0)addi $t0,$t0,1lb $t2,endinput beq $t2,$t1,endj input #gets(S);end:li $t1,0li $v0,5syscallmove $s5,$v0for:sll $s0,$t1,2lw $t3,0($s0) #a[i]lw $t4,4($s0) #a[i+1]if1: bne $t4,$t2,else1 li $s1,0 j endif1 else1: li $s1,1endif1: slt $s2,$0,$s5 and $s1,$s1,$s2li $s2,1bne $s1,$s2,endfor #S[i+1]!='\0'&&n>0slt $s4,$t4,$t3 #if(S[i+1]<S[i])bne $s4,$s2,endif2addi $t5,$t1,0 #j=ifor2:sll $t6,$t5,2lw $t7,0($t6)beq $t2,$t7,endfor2 #S[j]!='\0'lw $t7,4($t6) #S[j]=S[j+1];sw $t7,0($t6)addi $t5,$t5,1 #j++j for2endfor2:subi $s5,$s5,1 #n--li $t1,0 endif2:addi $t1,$t1,1j for endfor:slt $t5,$0,$s5li $t6,1bne $t5,$t6,endif3addi $t7,$t1,1sub $t7,$t7,$s5sll $t7,$t7,2sw $t2,0($t7) #if(n>0) #S[i+1-n]='\0'; endif3:li $t1,0print: #puts(S)sll $s0,$t1,2lw $s0,0($s0)beq $s0,$t2,endprintmove $a0,$s0li $v0,11syscalladdi $t1,$t1,1j printendprint:li $v0,11move $a0,$t2syscallli $v0,10syscall以下为对应的C语言代码 #include<stdio.h> #define MAX 1000int main(){int n,i,j; char S[MAX];gets(S);scanf("%d",&n);for(i=0;S[i+1]!='\0'&&n>0;i++){ if(S[i+1]<S[i]) { for(j=i;S[j]!='\0';j++) S[j]=S[j+1]; n--; i=0; }}if(n>0) S[i+1-n]='\0'; puts(S); }
阅读全文
0 0
- MIPS汇编练习
- MIPS 汇编
- MIPS汇编
- mips汇编模拟器spim
- MIPS汇编小贴示
- 开始学习MIPS汇编
- MIPS汇编小贴示
- MIPS汇编教程
- MIPS汇编指令
- MIPS GCC 嵌入式汇编
- mips汇编指令学习
- mips汇编指令学习
- mips 内嵌汇编
- MIPS汇编小贴示
- MIPS汇编指令
- mips汇编指令学习
- MIPS汇编知识点
- mips汇编指令学习
- (实验)Java一个线程用synchronized嵌套锁多个对象时调用wait()只释放wait函数关联的所对象还是释放所有锁对象
- Python相关基础
- 计算某年某月某日是该年的第几天【算法入门】
- 栈的存储结构和应用
- layui
- MIPS汇编练习
- MSSQL附加数据库5120错误(拒绝访问)处理方法
- EditPlus实现自动提示和跳转,下载配置CTags,附上下载链接
- Android studio配置copyright插入版权信息的详细教程
- ml-拟合浅谈
- OPENCV 1. opencv和 VS 2010的安装
- JavaScript对象中属性的getter和setter方法
- <? extends Fruit>与<? super Apple>的理解
- JAVA配置环境变量