Code forces 376 C Divisible by Seven
来源:互联网 发布:詹姆斯职业生涯数据 编辑:程序博客网 时间:2024/04/29 14:06
给出一个字符串,其中至少包含1,6,8,9各一个及其他数字若干,
要求重新排列这个字符串,使得它表示的数可以被7整出,不允许前导零。
如果不存在输出0.
1689四个数变换位置可以有24种可能,
然后打了一个从1689到100000的表,看看符合条件的数的特点。
#include<stdio.h>int ask(int x){ int f1=0,f2=0,f3=0,f4=0; while(x){ if(x%10==1)f1=1; if(x%10==6)f2=1; if(x%10==8)f3=1; if(x%10==9)f4=1; x/=10; } if(f1+f2+f3+f4==4)return 1; else return 0;}int main(){ for(int i=1689;i<=100000;i++){ int tp=i; int flag=ask(tp); if(i%7==0&&flag)printf("%d\n",i); } return 0;}设最终的合法的数为[num][1689](1689位置可能会换)中num无论是0123456中谁都有合法的解。
那么,将给的字符串处理一下,去掉第一个出现的1,6,8,9,再记录并且跳过前导零,然后输出剩下的,并且计算出他们%7的余数,然后根据余数输出一个和[1689]凑整的排列,再输出之前记录的前导零即可。
#include<stdio.h>#include<string.h>char str[1111111],ans[1111111];int main(){ while(scanf("%s",&str)!=EOF){ int f1=1,f6=1,f9=1,f8=1; int tp=0,len=strlen(str); int tot=0; for(int i=0;i<len;i++){ if(f1&&str[i]=='1'){ f1--;continue; } if(f6&&str[i]=='6'){ f6--;continue; } if(f9&&str[i]=='9'){ f9--;continue; } if(f8&&str[i]=='8'){ f8--;continue; } ans[tot++]=str[i]; tp=(tp*10+str[i]-'0')%7; } int ling=0,flag=0; for(int i=0;i<tot;i++){ if(!flag&&ans[i]=='0')ling++; else {printf("%c",ans[i]),flag++;} } if(tp==0)printf("1869"); else if(tp==1)printf("6198"); else if(tp==2)printf("1896"); else if(tp==3)printf("6981"); else if(tp==4)printf("1986"); else if(tp==5)printf("1968"); else if(tp==6)printf("1698"); for(int i=0;i<ling;i++)printf("0"); printf("\n"); } return 0;}
0 0
- Code forces 376 C Divisible by Seven
- C. Divisible by Seven
- CF 376C Divisible By Seven 同余+暴力
- codeforce 221 Div2 C - Divisible by Seven
- Divisible by Seven
- Divisible by Seven CodeForces
- codeforces 376C Divisible by Seven(能被7整除的数)
- Codeforces Round #221 (Div. 2)-C. Divisible by Seven
- CodeForces 374A. Divisible by Seven
- CodeForces 375A Divisible By Seven
- CF-375A Divisible by Seven
- CodeForces 375A Divisible by Seven
- CodeForces 375A Divisible by Seven
- Code Forces #5C
- Code forces 612C
- A. Divisible by Seven----打表暴力/数学思维
- Codeforces Round #221 (Div. 2) B. I.O.U. C. Divisible by Seven D. Maximum Submatrix 2 解题报告
- code forces 370C. Mittens
- 黑马程序员——使用Iterator遍历集合
- FLSL2.0学习笔记(二)
- ANDROID 清除WIFI 已有連接過的歷史AP
- 黑马程序员——快速排序
- 阻焊层和助焊层区别
- Code forces 376 C Divisible by Seven
- 求QML 图书
- 黑马程序员——金额转换
- 黑马程序员——判断身份证是否合法
- Android弹出框的学习
- 黑马程序员——拷贝文件
- 黑马程序员——泛型集合
- 3.2 支持不同屏幕
- 黑马程序员——交通灯管理系统