24.找出正整数中偶数,并输出相加后的数,要用 long.例:输入 5548 输出 12(if判断,/10,%10)
25.输入 n b, 找出 1-n 中被 b 整除的个数。例:输入 6 3 输出 2,(3 和 6)(if判断取余运算)
26.输入十个数,最大数和最后一个数交换,最小数和第一个数交换(for,swap)利用max min
import java.util.;
public class solution{
public static void solution(int[] a)
{
int min=0;int max=0;
for(int i=0;i<a.length;i++)
{
if(a[i]>a[max])
max=i;
if(a[i]<a[min])
min=i;
}
swap(a[0],a[min]);
swap(a[a.length-1],a[max]);
}
public static void swap(int a,int b)
{
int temp=a;
a=b;
b=temp;
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int[]{0,1,554,88,6,3,4};
solution(a);
for(int i=0;i<a.length;i++)
System.out.print(a[i]+",");
}
}
27.输入一个数 n,计算 1 (1 2) (1 2 3) ..... (1 2 ... n)(for运算)
28.100 以内的完数(for if 判断%来判断是不是因子)
写一个求因子和的函数之后用一个循环进行判断
29.输出 N 的阶乘(for 或者递归)
直接用for来写
30.整数取偶数位上的数,即输入一个数字要求输出该数字各个位上偶数的和,
如输入 5584,输出 12(for if /10,%10))
31.输入一个整数,取出这个整数中的偶数位上的数字组成一个新数并输出,例
如输入 123456,输出 246(for if /10 %10即可)
数字变成字符串只要+“”即可,用Stringbuffer。append即可
32.求两个数的最大公约数和最小公倍数(辗转相除法)
input a,b;m=a
b;
whlie(b!=0)
t=a%b;
a=b;
b=t;
最大公约数 a 最小公倍数 m/a;
64.一元钱买一瓶汽水,两个空汽水瓶换一瓶汽水,三个瓶盖换一瓶汽水,输入(if判断递归调用即可)
public static void cal(int i,int j,int k) {
int i1=0,j1=0,k1=0;
sum += i; // 一开始喝完
j += i;// 喝完后的空瓶数
k += i;// 喝完后的瓶盖数
if(j >= empty) {// 空瓶可以换
i1 += j/empty;
j1 = j%empty; // 换了之后的空瓶数
}else { // 空瓶不能换
j1 = j;
}
if(k >= cap) {// 瓶盖可以换
i1 += k/cap;
k1 = k%cap; // 换了之后的瓶盖数
}else { // 瓶盖不能换
k1 = k;
}
if(i1 >0 || j1 >= empty || k1 >= cap) {
// 如果可以换则继续
cal(i1,j1,k1);
}
}
}
70.输入一个数字组成的数组,这些数字要么有 3 个,要么有 1 个,找出那一个
数字,例如 2223334445666,则输出 5 (利用%10 /10 for 加上数组计算即可)

68.从一个边长为 a 的正方形里裁剪下来一个边长为 b 的正方形,判断剩下的 L
形面积是否是一个质数(即判断a2-b2是不是一个素数,可以学习一下素数的判断方法)
public boolean isPrime(int n)
{
if(n < 2) return false;
if(n == 2) return true;
if(n%2==0) return false;
for(int i = 3; ii <= n; i += 2)
if(n%i == 0) return false;
return true;
}
62.问题简述:一只小猴子吃桃子的问题。话说,一只小猴子第一天摘下若干个
桃子,并吃了一半。感觉到吃的还不瘾,于是又多吃了一个;第二天早上,
又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上,都吃了前一天剩下
的一半零一个。问题:请问,到了第 10 天早上想再吃时,却发现只剩下一个
桃子了。求第一天共摘了多少?(一个数学问题)
day=9;
int ans=1;
while day》0
day——
ans=2
(ans+1);
38.给出某年某月某日,求出该日期是该年的第几天(1357810啦)
days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};还要判断是不是闰年
days[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}判断闰年被四整除但不被100;或者被400整除

39.给出两个数,例如 23 和 456,23 * 456=2 * 4 2 * 5 2 * 6 3 * 4 3 * 5 3* 6,实现该算法

41.回文数相加的问题,例如: 给出一个整数 n=2,输出回文数相加结果:
1+121=?输入整数 n=3 ,输出回文数相加结果:1+121+12321=?
写一个make回文数的函数就可以了,当然也可以递归调用;return ans+solution(n-1)
46.1+2/3+3/5+4/7+…数列求和,输出结果(for 上面是每次加1下面是奇数)
for 循环既可以解决
48.输入几个单词,将字母变换成另外一组单词输出,若字母是 i,则变换后的
字母是 26+i-1
private static String changeStr2(String s){
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
if('a'<=c[i]&&c[i]<='z') {
c[i] = (char)('a'2+25-c[i]);
}
if('A'<=c[i]&&c[i]<='Z')
c[i]=(char)('A'
2+25-c[i]);
}
return String.valueOf(c);
}

49.给一个 8 元素数组例如 1 3 0 3 6 0 0 9 将所有 0 放后面,其他数字顺序不
变,结果为 1 3 3 6 9 0 0 0(原地交换学习一下
)快慢指针
public class Demo10 {
public void moveZeros(int[] nums) {
// 相当于定义了两个指针
int slow = 0, fast = 0;
while(fast < nums.length) {
if(nums[fast] != 0) {
nums[slow] = nums[fast];
slow++;
fast++;
} else { // 一旦这个数组上的数字是0,那么fast指针就需要往前走
// slow指针停留在0这个位置,在等待着fast发现了非0的数字将0位置的slow指针覆盖掉
fast++;
}
}
// slow跟fast相差了多少,就说明这个数组有多少个0,在上面填充完元素之后,
// 就需要将娄底漏掉的0补上
for(int i = slow; i < nums.length; i++) {
nums[i] = 0;
}
}
}

50.给一个数组,问数组中奇数多还是偶数多
用计数器计算一下即可,写一个计数器做一下比较
51.给一个数组,一个 target 值,求数组中俩元素和为 target 的俩下标
(暴力或者hash)
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();
for (int i = 0; i < nums.length; ++i) {
if (hashtable.containsKey(target - nums[i])) {
return new int[]{hashtable.get(target - nums[i]), i};
}
hashtable.put(nums[i], i);
}
return new int[0];
}
}

52.将两个数组合并成一个数组,删除重复的元素然后排序,例如输入[1,2,3]、
[3,4,5,2],则合并得到[1, 4, 5],输入[1,2,3,3]和[3,9,6]合并得到
[1,2,6,9](建立hash表,判断如果等于1就跳过等于零就放进去 fast slow)

53.从数组中找出唯一出现一次的数
建立数组哈希;利用动态数组进行储存
54.数组元素位置交换问题
swap;
66.n 个色子的点数之和为 m 的概率计算(dp问题)
(一个dp问题 dp【m】=dp【n-1】/6+dp[n-2]/6+dp[n-3/6]。。。。1.。n的概率全部是0)

44.输入一个 long 类型数字,如 365141,输出 3-6-5-1-4-1,也就是中间加横线(for)
每次都除以Math.pow(10,n-1)
可以所有输入都作为字符串之后用-‘0’化成数组或者Interge.ParsensInt()
import java.util.*;
public class solution{
public static void solution(String s)
{
char[] c=s.toCharArray();
for(int i=0;i<s.length()-1;i++)
System.out.print(c[i]+"-");
System.out.print(c[s.length()-1]);
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
String s=sc.next();
solution(s);
}
}
45.等差数列求和、等比数列求和(for)(数学问题)

67.输入一个矩阵一条对角线上的坐标,输出矩阵的中心(数学问题 求平均值即可呀)

43.给出三个数 abc,能否在 1000-9999 之间找到一个数 x,满足 x%a=0 且
(x+1)%b=0 且(x+2)%c=0,找不到该数 x 则返回 Impossible(for+if 简单的操作运行)

请打印杨辉三角(学习list的创建)
class Solution {
public List<List<integer>> generate(int numRows) {
List<List<integer>> l=new ArrayList<List<integer>>();
for(int i=0;i<numRows;i++)
{
List<integer> row=new ArrayList<integer>();
for(int j=0;j<=i;j++)
{
if(j==0||j==i)
{row.add(1);}
else row.add(l.get(i-1).get(j-1)+l.get(i-1).get(j));
}
l.add(row);
}
return l;
}
}。
做了一个等腰三角处理;
import java.util.*;
public class solution{
public static void solution(int n)
{
List<List<integer>> list=new ArrayList<List<integer>>();
for(int i=0;i<n;i++)
{
List<integer> row=new ArrayList<integer>();
for(int j=0;j<=i;j++)
{
if(j==0||i==j)
row.add(1);
else row.add(list.get(i-1).get(j)+list.get(i-1).get(j-1));
}
list.add(row);
}
for(int i=0;i<n;i++)
{
int num = n -i;
for(int z = 0;z<= num;z++)
{
System.out.print(" ");
}
for(int j=0;j<list.get(i).size();j++)
{
System.out.print(list.get(i).get(j)+" ");
}
System.out.print('\n');
}
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
String s=sc.next();
int n=Integer.parseInt(s);
solution(n);
}
}</integer></integer></integer></integer></integer></integer></integer></integer></integer>

//10.连续子数组的最大和
private static int FindGreatestSumOfSubArray(int[] array) {
if(array.length==0)
return 0;
int total=array[0];
int maxSum=array[0];
for(int i=1;i<array.length;i++){
total=(total>0)?total+array[i]:array[i];
maxSum= Math.max(maxSum, total);
}
return maxSum;
}

//4.字节数组转换16进制
private static String byteToHex(byte[] bytes){
StringBuilder sb=new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex=Integer.toHexString(bytes[i]);
if(hex.length()<2)
hex="0"+hex;
sb.append(hex);
}
return sb.toString();
}
//5.16进制转换字节 1byte(8bit 每4bit16种情况 8bit用两个16进制数表示)=2Hex
private static byte hexToByte(String hex){
return (byte) Integer.parseInt(hex,16);
}
//6.16进制转换字节数组
private static byte[] hexToBytes(String hex){
int length=hex.length();
byte[] result;
if(length%2!=0){
result=new byte[(length+1)/2];
hex="0"+hex;
}else {
result=new byte[length/2];
}
int j=0;
for(int i=0;i<hex.length();i+=2){
result[j]=hexToByte(hex.substring(i,i+2));
j++;
}
return result;
}