删数问题(C语言实现)
来源:互联网 发布:国家省市区数据库 编辑:程序博客网 时间:2024/06/06 00:35
思路: 每一步总是选择一个使剩下的数最小的数字删除,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,这样删一位便形成了一个新的数字串。然后回到串首,按上述规则再删除下一个数字
代码:
#include<stdio.h>#include<string.h>#define N 100int main(){ char a[N],temp[N]; int i,j,n,k,num=0; memset(a,'\0',sizeof(a)); memset(temp,'\0',sizeof(temp)); printf("请输入正整数:\n"); scanf("%s",a); n=strlen(a); printf("请输入要删除的位数:\n"); scanf("%d",&k); if(k<=n) { while(num<k) { for(i=0;i<n-num;i++) //找出递减区间的首个数字 { if(a[i]>a[i+1]) { j=i+1; break; } else { temp[i]=a[i]; } } for(;j<n-num;j++) //删除找出的那个数字 { temp[i++]=a[j]; } num++; //统计删减数字个数 memset(a,'\0',sizeof(a)); strcpy(a,temp); memset(temp,'\0',sizeof(temp)); } printf("最后得到的最小数为:\n%s\n",a); } return 0;}
阅读全文
0 0
- 删数问题(C语言实现)
- C语言---“亲密数”问题
- C语言---“自守数”问题
- C语言实现逆序数
- c语言实现组合数
- C语言 递归(回溯) 解决数独问题
- C语言中的数独问题(回溯)
- 求一个数的平方根(C语言实现)
- [leetcode]Valid Palindrome (判断回文数 C语言实现)
- 两数互换(c语言编程能实现)
- 回文数的判断(C语言实现)
- PAT Basic 1013. 数素数 (20)(C语言实现)
- PAT Basic 1064. 朋友数(20)(C语言实现)
- 如何交换两个数(C语言实现)
- 判断素数问题(C语言实现)
- 哲学家就餐问题(C语言实现)
- 判断素数问题(C语言实现)
- 荷兰旗问题(C语言实现)
- Different types Server in Python
- 文章标题
- 使用ICMP协议检测网络状态
- PAT 甲级 1060. Are They Equal (25)
- (M)Dynamic Programming:357. Count Numbers with Unique Digits
- 删数问题(C语言实现)
- bzoj 1192: [HNOI2006]鬼谷子的钱袋
- 大三,2017下半年的计划
- < 笔记 > Python
- ElasticSearch
- Property动画总结
- 三分算法
- android沉浸式状态栏
- application 对象是什么