蓝桥杯模拟题java小Hi参加了一场大型马拉松运动会

package name1;


import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

import nanber1.Main;

public class textt {

	public static void main(String[] args) {
		int s1 = 1000000;
		String sr = "";
		for(int i=1;i<s1;i++) {
			sr=sr+i;
			char[]arr=sr.toCharArray();
			String sc="";
			for(int j=0;j<arr.length;j++) {
				int sf=arr[j]-'0';
			
				if(sf==6) {
					if(arr[arr.length-1]!='0') {
						
						int arrs =arr[j]+3;
						arr[j]=(char)arrs;
					}
					
				}else if(sf==9) {
					if(arr[arr.length-1]!='0') {
						
						int arrs =arr[j]-3;
						arr[j]=(char)arrs;
					}
				}
			
			}
			for(char g:arr) {
				sc+=g;
			}
			
			int sss =Integer.parseInt(sc);//没反转的
			int ssa =Integer.parseInt(sr);//翻转后的
			if(sc.equals(sr)==false) {
				if(sr.indexOf("7")==-1&&sr.indexOf("3")==-1&&sr.indexOf("4")==-1) {
					System.out.println(sr);
				}
				
			}
			sr="";
			sc="";
		}
	}

}

描述
小Hi参加了一场大型马拉松运动会,他突然发现面前有一位参赛者背后的号码竟然和自己一样,也是666。仔细一看,原来那位参赛者把自己号码帖反(旋转180度)了,结果号码999看上去变成了号码666。  
小Hi知道这次马拉松一共有N名参赛者,号码依次是1~N。你能找出所有可能因为贴反而产生歧义的号码吗?  
一个号码K可能产生歧义当且仅当反转之后的号码是合法的数字K',并且满足1 ≤ K' ≤ N且K' ≠ K。  
例如:
3没有歧义,因为贴反之后不是合法的数字。  
100没有歧义,因为001以0开头,不是合法号码。  
101也没有歧义,因为贴反之后还是101本身。  
假设N=10000000,则1025689有歧义,因为贴反之后变成6895201。如果N=2000000,则1025689没有歧义,因为6895201大于N。
输入
一个整数N。(1 ≤ N ≤ 100000)
输出
从小到大输出1~N之间所有有歧义的号码。每个号码一行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值