算法题打卡第一天:1 - 5题
第一题- 问题描述:
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。(1<=n<=200) - 代码块:
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in =new Scanner(System.in); while(in.hasNext()) { int n=in.nextInt(); int[] num=new int[n]; for (int j=0;j第二题
- 问题描述:
等差数列是一个很有趣的数列,它的任何相邻两项的差相等。蒜头君给出一个等差数列的前两项 a1,a2,求第n项是多少?- 代码块:
import java.util.*; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int a1=in.nextInt(); int a2=in.nextInt(); int n=in.nextInt(); int sum=1; int d=a2-a1; sum=a1+d*(n-1); //等差数列公式:an=a1+(n-1)*d System.out.print(sum); } }第三题
- 个人思路方法:
通过输入给出前两项的值以及要求的n项的编号,然后通过等差数列末项公式:an=a1+(n-1)*d,进行求解
- 问题描述:
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。并按从小到大的顺序进行输出。- 代码块:
public class Main { public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 0; j < 10; j++) { for (int k = 0; k < 10; k++) { for (int l = 0; l < 10; l++) { if (i == l && j == k) { System.out.println("" + i + j + k + l); } } } } } } }第四题
- 个人思路方法:
我对这题的思路就很魔性,我用了四层的for循环遍历进行了求解。各路大神有更好的方法可以在评论区和我交流交流。
- 问题描述:
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。- 代码块:
import java.lang.*; public class Main { public static void main(String[] args) { int number; for (number = 100; number <= 999; number++) { int a=number/100; int b=number%100/10; int c=number%100%10; int i = (int) ((Math.pow(a,3))+(Math.pow(b,3))+(Math.pow(c,3))); if (number==i) System.out.println(number); } } }第五题
- 个人思路方法:
这题其实是求出水仙花树题目。先给出在100到1000以内的一个输值,并按顺序依次求出百千个位上的数字,然后通过for循环遍历的方法去一个一个比对,若满足条件则输出。
问题描述:
代码块:
import java.util.*; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { double xa=in.nextDouble(); double ya=in.nextDouble(); //尽量不要用整型,改用double型 double xb=in.nextDouble(); double yb=in.nextDouble(); double len=0.0; len=(double)Math.sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)); System.out.printf("%.3f",len); } } }
- 个人思路方法:
这题我本人使用的方法很简单,就是通过输入x1,y1,x2,y2来,然后听过两点线段公式来进行解答。但是我在做的时候,遇到一个精度问题。因此我认为这题考察的是对精度问题的求解。个人觉得可以使用二维数组进行优化这题。本人是算法界的”小白“,请各位大佬多多指教,本人解题思路并不是很优化,大佬们有好的思路,可以在评论区和我进行讨论,我一定悉听尊便。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)