整数拆分:
1023 12
3
#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; }