public class Test {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 100; i++) {
//如果是奇数 则累加
if (i % 2 != 0) {
sum += i;
}
}
System.out.println(sum);
}
}
明确什么样的数就是水仙花数。水仙花数是指一个3位数(100-999之间),其每位数字立方之和等于该3位数本身。如153 = 1 * 1 * 1 + 3 * 3 * 3 + 5 * 5 * 5,即 3位数本身 = 百位数立方 + 十位数立方 + 个位数立方;
public class Test {
//当我把i的取值范围调整成一万时 会输出一个1001 没搞明白什么原因
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i / 100;//百位数
int b = i / 10 % 10;//十位数
int c = i % 10;//个位数
if ((a*a*a+b*b*b+c*c*c)==i){
System.out.println(i);
}
//通过百度,得知循环条件可以用math工具类中的pow方法代替
if ((Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3))==i){
System.out.println(i);
}
}
}
}
American Standard Code for Information Interchange,美国标准信息交换代码. 在计算机中,所有的数据在存储和运算时都要使用二进制数表示, a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号, 在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。
数字0-9对应ASCII编码十进制为48-57, 字母a-z对应ASCII编码十进制为97-122,字母A-Z对应ASCII编码十进制为65-90
public class Test {
public static void main(String[] args) {
char up = 'A';
char low = 'a';
for (int i = 0; i < 26; i++) {
System.out.println("大写字母 "+up+" ,小写字母 "+low);
up++;
low++;
}
}
}
public class Test {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
public class Test {
public static void main(String[] args) {
int[] arr = {11, 33, 44, 22, 55};
printArr(arr);
//也可以直接调用工具类Arrays中的tostring方法进行打印
//System.out.println(Arrays.toString(arr));
}
public static void printArr(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if ((arr.length - 1) != i) {
System.out.print(arr[i] + ",");
} else {
System.out.print(arr[i] + "]");
}
}
}
}
public class Test {
public static void main(String[] args) {
int[] arr = {23, 34, 45, 56, 67, 78, 89};
printArr(arr);
}
public static void printArr(int[] arr) {
int count = arr.length - 1;
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[count];
arr[count] = temp;
count--;
}
//for里的条件也可以换成(int start=0,end=arr.length-1;start
public class Test {
public static void main(String[] args) {
int[] arr = {13,46,22,65,3};
printArr(arr);
}
public static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr[i]>arr[j]){
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
public class Test {
public static void main(String[] args) {
int[] arr = {13, 46, 22, 65, 3};
printArr(arr);
}
public static void printArr(int[] arr) {
//功能
//外层循环用来控制数组循环的圈数
for (int i = 0; i < arr.length - 1; i++) {
//j < arr.length-1 为了避免角标越界
//j < arr.length-1-i 为了比较效率,避免重复比较
//内层循环用来完成元素值比较,把大的元素值互换到后面
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
System.out.println(Arrays.toString(arr));
}
}
}
}
public class Test {
public static void main(String[] args) {
int[] arr = {23, 34, 45, 56, 67, 78, 89};
int index = printArr(arr,56);
System.out.println(index);
}
public static int printArr(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i]==num){
//找到了
return i;
}
}
return -1;
}
}
注意:使用二分查找的数组必须是有序的
public class Test {
public static void main(String[] args) {
int[] arr = {23, 34, 45, 56, 67, 78, 89};
int a = printArr(arr,89);
System.out.println(a);
}
public static int printArr(int[] arr, int key) {
int low = 0;
int high = arr.length - 1;
int middle = 0; //定义middle
if(key < arr[low] || key > arr[high] || low > high){
return -1;
}
for (int i = 0; i < arr.length/2; i++) {
middle = (low + high) / 2;
if(arr[middle] > key){
//比关键字大则关键字在左区域
high = middle -1;
}else if(arr[middle] < key){
//比关键字小则关键字在右区域
low = middle +1;
}else{
return middle;
}
}
return -1;
}
}
1.分析以下需求,并用代码实现:
(1)按照从大到小的顺序输出四位数中的个位+百位=十位+千位(3553,2332,1166,8228,3773)的数字及个数
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如:9999 9988 9977 9966 9955
public class Test {
public static void main(String[] args) {
printDemo();
}
public static void printDemo() {
int count = 0;
for (int i = 1000; i <= 9999; i++) {
if ((i % 10 + i / 100 % 10) == (i / 10 % 10 + i / 1000)) {
count++;
if (count == 5) {
System.out.print(i);
System.out.println();
count = 0;
} else {
System.out.print(i + " ");
}
}
}
}
}
2.分析以下需求,并用代码实现:
(1)倒着打印九九乘法表
public class Test {
public static void main(String[] args) {
printMultiplicationTable();
}
public static void printMultiplicationTable(){
for (int i = 9; i > 0; i--) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
运行效果:
1 * 9=9 2 * 9=18 3 * 9=27 4 * 9=36 5 * 9=45 6 * 9=54 7 * 9=63 8 * 9=72 9 * 9=81
1 * 8=8 2 * 8=16 3 * 8=24 4 * 8=32 5 * 8=40 6 * 8=48 7 * 8=56 8 * 8=64
1 * 7=7 2 * 7=14 3 * 7=21 4 * 7=28 5 * 7=35 6 * 7=42 7 * 7=49
1 * 6=6 2 * 6=12 3 * 6=18 4 * 6=24 5 * 6=30 6 * 6=36
1 * 5=5 2 * 5=10 3 * 5=15 4 * 5=20 5 * 5=25
1 * 4=4 2 * 4=8 3 * 4=12 4 * 4=16
1 * 3=3 2 * 3=6 3 * 3=9
1 * 2=2 2 * 2=4
1 * 1=1
(1) 计算15+25+35+....+1005的和
public class Test {
public static void main(String[] args) {
printSum();
}
public static void printSum(){
//计算15+25+35+....+1005的和
System.out.println();
int i =15;
int sum = 0;
while (true){
sum+=i;
if (i==1005){
System.out.println(sum);
return;
}else {
i+=10;
}
}
}
}