新生34场
2022/1/30 23:10:30
本文主要是介绍新生34场,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
整数拆分:
题目描述
小明最近在学习整数拆分,他在草稿纸上随手写下了一串数字,仅包含“0”~“9”这十种数字,长度不超过9。现在你可以在这串数字中选出任意一个子串(不能为空,可以是原串),不能以数字“0”开始。小明想要知道,这些可能的子串构成的数,有多少个比他心目中的幸运数字x更大。
注:子串只要在原串中的起始或者终止位置不同,就认为是不同的子串;子串和x都是十进制的。
输入
第一行输入一个数字串S,仅包含数字“0”~“9”这十种数字,长度不超过9。第二行包含一个整数x,表示小明的幸运数字。
输出
有多少个非“0”开始的子串,表示成十进制数后比x更大。样例输入 Copy
1023 12
样例输出 Copy
3
提示
子串“23”、“102”和子串“1023”,都要比12更大。对于50%的数据,S的第一个字母不超过“2”。
对于100%的数据,S仅包含数字“0”~“9”这十种数字,1<=S的长度<=9;0<=x<=777444111。 这两天是真的被双指针那些东西冲昏了头脑,真的真的,那么简单的一道题,为什么会被我做成那个样子 第一次想的太复杂了QAQ,nnd,我还在考虑位数和前导0啥的,位数相同的又干嘛干嘛。 返璞归真啊wc,上一下错误的代码,给自己一巴掌,hhh
#include<iostream> #include<cstring> #include<algorithm> using namespace std; int main(){ char ch[100]; int x,len,f=0,t=0; cin>>ch; cin>>x; len=strlen(ch); for(int z=1;z<=len;z++) { for(int i=0;i<len;i++) { if(ch[i]=='0') int f=1; for(int j=i;j<i+z;j++) { if(f==1) { int sum=0; for(int k=i;k<j;i++) { sum=sum+ch[i]-'0'; sum*=10; } if(sum/10>x) . 。 。 。 。(省略号,hhhh) return 0; }
真狠啊.....
明明可以直接把每一个数遍历一遍,遇到0就下一个循环,然后只要大于x的就++;哪来那么多事....
#include<iostream> #include<cstring> #include<algorithm> using namespace std; int main(){ char ch[1000]; int len,x,t=0; cin>>ch; cin>>x; len=strlen(ch); for(int i=0;i<len;i++) { int sum=0; if(ch[i]=='0') continue; for(int j=i;j<len;j++) { sum=sum*10+(ch[j]-'0'); if(sum>x) t++; } } cout<<t<<endl; return 0; }
这篇关于新生34场的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)