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之间所有有歧义的号码。每个号码一行。