小乐乐和25

news/2024/11/7 18:05:08/

 

小乐乐特别喜欢25这个数字,他想把所有的数字都变成25的倍数。
现在小乐乐得到一个数字,想问问你最少用几次操作才可以把这个数字改造成25的倍数。
对于一次操作我们可以把相邻的两位做交换,比如123经过一次操作之后就可以变成213或者132。

题目描述

小乐乐特别喜欢25这个数字,他想把所有的数字都变成25的倍数。
现在小乐乐得到一个数字,想问问你最少用几次操作才可以把这个数字改造成25的倍数。
对于一次操作我们可以把相邻的两位做交换,比如123经过一次操作之后就可以变成213或者132。

输入描述:

多组数据输入
对于每组数据,只有一行输入一个整数n(1 <= n <= 1000000000)。

输出描述:

如果经过最少x次操作后,这个数就变成了25的倍数,那么输出x;
如果这个数无论怎么变化都变不成25的倍数,输出-1.

输入

2018

输出

-1

输入

2020

输出

1

说明

经过一次之后变成2200

题解:

通过找规律发现要想是25的倍数那么末尾一定是 00 25 50 75

所以暴力枚举即可
 

#include<iostream>
#include<cstring>
using namespace std;
int main(){char s[105];while(cin>>s){int len=strlen(s);int pos5=-1;int pos0=-1;int max=10000005;for(int i=len-1;i>=0;i--){if(s[i]=='5'){pos5=i;break;}}//记录下离结尾最近的5的位置 for(int i=len-1;i>=0;i--){if(s[i]=='0'){pos0=i;break;}}//记录下离结尾最近的0的位置 if(pos5!=-1){for(int i=len-1;i>=0;i--){if(s[i]=='2'){int temp=len-pos5-1+len-i-2;//把2,5 分别换到末尾所需要的步骤数 if(i>pos5)temp++;//要是2在5 后边,还要有一步把他们位置一换 max=min(max,temp);break;}}for(int i=len-1;i>=0;i--){if(s[i]=='7'){int temp=len-pos5-1+len-i-2;if(i>pos5)temp++;max=min(max,temp);break;}}}if(pos0!=-1){for(int i=len-1;i>=0;i--){if(s[i]=='0'&&i!=pos0){int temp=len-pos5-1+len-i-2;if(i>pos0)temp++;max=min(max,temp);break;}}for(int i=len-1;i>=0;i--){if(s[i]=='5'){int temp=len-pos5-1+len-i-2;if(i>pos0)temp++;max=min(max,temp);break;}}}if(max==10000005)//不能凑成25,50,75,00 cout<<"-1"<<endl;elsecout<<max<<endl;}return 0;
} 

 


http://www.ppmy.cn/news/721877.html

相关文章

音乐网址

**************综合MP3下载网站******** http://www.sogua.com http://www.chinamp3.com http://www.ting88.com http://music.skyhits.com/mp3_2088.htm http://mp3.baidu.com/ http://music.yisou.com/ *************欧美歌曲下載网站*************** http://www.21century-m…

这个五一,我尝试了断网生活

本文转载自程序员不高兴 今年五一我没有像往常假期一样&#xff0c;窝在家里抱着手机往返于各个平台刷刷刷&#xff0c;我坐高铁回了趟老家。 然后尝试了下两天断网生活&#xff0c;这篇算是对那两天的回顾。 回到租的房子后&#xff0c;发现今年五一网上同样很热闹&#xf…

56、mysql的作业

作业中要用到的两张表dept&#xff0c;emp&#xff0c;找不到原来的sql语句了&#xff0c;所以只有表的内容 1、选择题 &#xff08;1&#xff09;以下哪条语句是错误的&#xff1f; A. SELECT empno, ename name, sal salary FROM emp; B. SELECT empno, ename name, sal AS s…

流行音乐网站 /音乐网站

摘 要 本论文主要论述了如何使用JAVA语言开发一个流行音乐网站&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述流行音乐网站的当前背景以及系统开发的目的&…

l音乐网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;

音乐i网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字) &#xff1a;

教大家如何下載土豆,56,youku等在綫視頻網站視頻

导读&#xff1a;   教大家如何下載土豆,56,youku等在綫視頻網站視頻...   教大家如何下載土豆,56,youku等在綫視頻網站視頻...... by 冬天的火 ... 4 月 10 天前 ... 2486 次点击   誠諾轉:   现在在线视频越来越多了&#xff0c;想下载怎么办&#xff1f;下面我总结了…

LeetCode55+56

LeetCode55. 跳跃游戏 思路 使用贪心比较简单&#xff0c;设置一个最远距离&#xff0c;该距离从下标为0的开始计算。用i来遍历下标&#xff0c;i的范围就是从0到最远距离之间&#xff0c;每遍历一次就计算一次最远距离&#xff0c;当最远距离>数组长度时就返回true&#…