Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41298 张志鹏 密码锁 C++ 通过 100 9 MS 252 KB 987 2022-06-11 16:55:34

Tests(5/5):


#include<bits/stdc++.h> using namespace std; int UkLock,KLock; int Xarray[10],Yarray[10],Answer[10]; //X-Uklock,Y-Check_Number int Index_X=0; int Maxn_Times=10000; int IsPrime(int Prime){ if(Prime<2) return 0; for(int i=2;i*i<=Prime;i++){ if(Prime%i==0) return 0; } return 1; } void Check(int Check_Number){ int Index_Y=0,Times=0; memset(Yarray,0,sizeof(Yarray)); while(Check_Number){ Yarray[++Index_Y]=Check_Number%10; Check_Number/=10; } for(int i=1;i<=5;i++){ Times+=min(abs(Yarray[i]-Xarray[i]),abs(10+Xarray[i]-Yarray[i])); } //算拨动次数 min(向上,向下) if(Times<Maxn_Times){ Maxn_Times=Times; for(int i=1;i<=5;i++) Answer[i]=Yarray[i]; } } int main(){ cin>>UkLock; while(UkLock){ Xarray[++Index_X]=UkLock%10; UkLock/=10; } //把每位存储 for(int i=99999;i>=0;i--){ if(IsPrime(i)==0) continue; else Check(i); } //枚举+判断 for(int i=5;i>=1;i--) cout<<Answer[i]; return 0; }


测评信息: