解题思路: /*******按照除法规则递归调用即可,不是很需要题目给出的运算方法***********/
参考代码:
<First>/********************按照除法顺序********************************/ AC代码: #include <iostream> #include<string> #include<cmath> #define N 1000 using namespace std; bool is_17x(int *arr,int begin,int end); int main() { string str; while(getline(cin,str)) { int num[N]; for(int i=0;i<str.size();++i) num[i]=str.at(i)-'0'; if(num[0]==0) break; if(is_17x(num,0,str.size()-1)) cout<<1<<endl; else cout<<0<<endl; } return 0; } bool is_17x(int *arr,int begin,int end) { if(end-begin==1) return !((arr[end]+arr[begin]*10)%17); arr[begin+1]=(arr[begin]*10+arr[begin+1])%17; return is_17x(arr,begin+1,end); }
<Second>/************(按照题目意思)内存超限版本(反正都写了就记录一下-_-)*************/ #include <iostream> #include<string> #include<cmath> #define N 1000 using namespace std; bool is_17x(int *arr,int begin,int end); int main() { string str; while(getline(cin,str)) { int num[N]; for(int i=0;i<str.size();++i) num[i]=str.at(i)-'0'; if(num[0]==0) break; if(is_17x(num,0,str.size()-1)) cout<<1<<endl; else cout<<0<<endl; } return 0; } bool is_17x(int *arr,int begin,int end) { if(begin-end==-1) { int temp=arr[begin]*10+arr[end]; if(temp%17==0) return true; else return false; } int _n=5*arr[end]/10,n_=5*arr[end]%10; int flag[end+1];//借位标志符 for(int i=begin;i<=end;++i) flag[i]=0; if(arr[end]<n_) flag[end]=1; //个位不够减需要借位 arr[end]=abs(arr[end]-n_); if(flag[end]==1)//个位不够减需要借位 { if(arr[end-1]-1-_n<0) flag[end-1]=1; //十位不够减需要借位 arr[end-1]=abs(arr[end-1]-1-_n); } if(flag[end]==0)//个位够减不需要借位 { if(arr[end-1]-_n<0) flag[end-1]=1; //十位不够减需要借位 arr[end-1]=abs(arr[end-1]-_n); } for(int i=end-2;i>=begin;--i) { if(flag[i+1])//有借位才需要处理 { if(arr[i]>0) {--arr[i];break;} if(arr[i]==0) {arr[i]=9;flag[i]=1;} } } if(flag[begin]) ++begin;//如果最高位都需要借位,那么下次迭代将最高位去除 return is_17x(arr,begin,end); }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:1517 |
C语言程序设计教程(第三版)课后习题6.3 (Java代码)浏览:695 |
分糖果 (C++代码)浏览:1537 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:626 |
【排队买票】 (C语言代码)浏览:944 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:773 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2256 |
淘淘的名单 (C语言代码)浏览:1309 |