小光棍数
来源:互联网 发布:java中comparable接口 编辑:程序博客网 时间:2024/05/16 13:50
- 输入
- 有多组测试数据。第一行一个整数n,表示有n组测试数据。接下来的每行有一个整数m。
- 输出
- 输出第m个小光棍数。
- 样例输入
11
- 样例输出
471
import java.util.*; public class Main { public static void main(String[] args) { Scanner in= new Scanner(System.in); int n=in.nextInt(); while(n-->0){ long m=in.nextLong(); System.out.println((471+1000*(m-1))); } } }
这个题太搞笑了,我一开始采用暴力求解,后来输出结果后发现有规律,索性我就直接按照结果的规律直接输出了,这样真是太简单了,这里我附上原来的笨法:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int n=in.nextInt();
while(n-->0){
long m=in.nextLong();
long num=0;
int cnt=0;
while(true){
if(num*num*num%1000==111)
cnt++;
if(cnt==m)
break;
num++;
}
System.out.println(num);
}
}
}好吧,我又来补充啦,原来这题利用的是同余定理,好波,来补一波知识吧:
- 数学上的记法为:a≡ b(mod d)对于同余有三种说法都是等价的,分别为:(1) a和b是模d同余的.(2) 存在某个整数n,使得a=b+nd .(3) d整除a-b.所以这题相当于num≡471(1000),所以num=471+1000*k;
村里人我又长见识了,嘻嘻!
阅读全文
0 0
- 小光棍数
- 小光棍数
- 小光棍数
- 小光棍数
- NYOJ_458小光棍数
- 小光棍数
- 小光棍数
- 458 小光棍数
- 小光棍数
- nyoj458小光棍数
- nyist 小光棍数
- 小光棍数
- 小光棍数
- ACM-小光棍数
- 1148 -- 小光棍数
- nyoj458小光棍数
- 小光棍数
- 53.小光棍数
- # git命令行操作:
- android DrawerLayout 抽屉布局的使用
- WERTYU
- 1179: [Apio2009]Atm
- 【转】STO跨公司转储流程
- 小光棍数
- WEB前端试题
- java中一些基础知识点
- hibernate中实现双向一对一的映射关系
- 原生js点击ul下边li显示其索引值的”n“种方法
- 笨方法学Python 习题 13: 参数、解包、变量
- 位移量k很大
- C#194课的主要内容
- idea2017用maven启动内置时jetty报错