import java.util.Scanner;
class Demo04_01{
public static void main(String[] args){
//1.先输入一个数字
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
long num=scanner.nextLong();
//2.调用函数将num拆分求和
int sum=sumDigits(num);
System.out.println(sum);
}
public static int sumDigits(long n){
int sum=0;
while(true){
sum+=n%10;
n/=10;
if(n==0){
return sum;
}
}
}
}
import java.util.Scanner;
class Demo4_02{
public static void main(String[] args){
System.out.print("请输入一个整数:");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
System.out.println(num+" is "+isPalindrome(num));
}
public static int reverse(int number){
int sum=0;
for(int i=number;i!=0;){
sum=sum*10+i%10;
i/=10;
}
return sum;
}
public static boolean isPalindrome(int number){
int num1=reverse(number);
return num1==number?true:false;
}
}
import java.util.Scanner;
class Demo4_03{
public static void main(String[] args){
System.out.print("请输入一个n:");
Scanner input=new Scanner(System.in);
int n=input.nextInt();
displaypattren(n);
}
public static void displaypattren(int n){
for(int i=1;i<=n;i++){
for(int k=n-1;k>=i;k--){
System.out.print(" ");
}
for(int j=i;j>=1;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
import java.util.Scanner;
class Demo4_05{
public static void main(String[] args){
System.out.print("请输入一个n: ");
Scanner input=new Scanner(System.in);
int n=input.nextInt();
System.out.print(sqrt(n));
}
public static double sqrt(long n){
double r;
double last_guess = n;
double new_guess = n / 2;
while ((last_guess-new_guess)/last_guess>0.01)
{
last_guess = new_guess;
r = n / new_guess;
new_guess = (new_guess + r) / 2;
}
return new_guess;
}
}
class Demo4_06{
public static void main(String[] args){
int count=0; //表示回文素数的个数
int num=2; //表示可能的回文素数的数字 从2开始~?
while(true){
//如果num是 回文素数
if(isHuiWenAndSuShu(num)){
count++;
System.out.print(num+" ");
if(count%10==0){
System.out.println();
}
}
if(count==100){
break;
}
num++;
}
}
public static boolean isHuiWenAndSuShu(int num){
return isHuiWen(num)&&isSuShu(num);
}
public static boolean isHuiWen(int num){
return reverse(num)==num;
}
public static int reverse(int num){
int sum=0;
while(true){
sum=sum*10+num%10;
num/=10;
if(num==0){
return sum;
}
}
}
public static boolean isSuShu(int num){
for(int i=2;i<=num/2;i++){
if(num%i==0){
return false;
}
}
return true;
}
}
class Demoo4_07{
public static void main(String[] args){
int count=0;
int num=2;
while(true){
if(isFanZhuanSuShu(num)){
count++;
System.out.print(num+" ");
if(count%10==0){
System.out.println();
}
}
if(count==100){
return; //结束当前函数
}
num++;
}
}
//1.本身是素数
//2.反转之后也是素数
//3.不能是回文
//素数() 反转() 回文功能()
public static boolean isFanZhuanSuShu(int num){
return isSuShu(num)&&isSuShu(reverse(num))&&!isHuiWen(num);
}
//回文功能
public static boolean isHuiWen(int num){
return reverse(num)==num;
}
//素数功能
public static boolean isSuShu(int num){
for(int i=2;i<=num/2;i++){
if(num%i==0){
return false;
}
}
return true;
}
//反转功能
public static int reverse(int num){
int sum=0;
while(true){
sum=sum*10+num%10;
num/=10;
if(num==0){
return sum;
}
}
}
}
import java.util.Scanner;
class Demo04_04{
public static void main(String[] args){
//1.先提示用户输入密码(String password)
Scanner scanner=new Scanner(System.in);
System.out.print("请输入密码:");
String password=scanner.nextLine();
//2.将密码传入 boolean isValid(password)
if(isValid(password)){
System.out.println("密码合法!");
}else{
System.out.println("密码不合法!");
}
}
//3.isValid()
//3.1 长度 isLengthValid()
//3.2 组成 isContentValid()
//3.2.1 isLetter(c) 判断该字符是否为字母字符
//3.2.2 isDigit(c) 判断该字符是否为数字字符
//3.3 特殊至少俩数字 isNumberValid() isDigit(c)
public static boolean isValid(String s){
return isLengthValid(s)&&isContentValid(s)&&isNumberValid(s);
}
public static boolean isLengthValid(String s){
return s.length()>=8;
}
public static boolean isContentValid(String s){
char c=' ';
for(int i=0;i<s.length();i++){
c=s.charAt(i);
if(!isLetter(c)&&!isDigit(c)){
return false;
}
}
return true;
}
public static boolean isNumberValid(String s){
int count=0;
char c=' ';
for(int i=0;i<s.length();i++){
c=s.charAt(i);
if(isDigit(c)){
count++;
}
}
return count>=2;
}
// a~z A~Z 只需要比较ASCII值
// 'a'<=c<='z' || 'A'<=c<='Z'
// '0'<=c<='9'
public static boolean isLetter(char c){
return c>='a'&&c<='z' || c>='A'&&c<='Z';
}
public static boolean isDigit(char c){
return c>='0'&&c<='9';
}
}
class Demo04_08{
public static void main(String[] args){
String s="abcasjdjhsadadbhasdvasbd";
System.out.println(count(s,'a'));
}
public static int count(String s,char c){
int count=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)==c){
count++;
}
}
return count;
}
}
class Demo04_09{
public static void main(String[] args){
String s="123456";
System.out.println(reverse(s));
}
public static String reverse(String s){
String res="";
for(int i=s.length()-1;i>=0;i--){
res+=s.charAt(i);
}
return res;
}
}
class Demo04_10{
public static void main(String[] args){
String s="Welcome To China";
System.out.println(getUpperCase(s));
}
public static int getUpperCase(String s){
int count=0;
for(int i=0;i<s.length();i++){
if(isUpperCase(s.charAt(i))){
count++;
}
}
return count;
}
public static boolean isUpperCase(char c){
return c>='A'&&c<='Z';
}
}
class Demo04_11{
public static void main(String[] args){
String s1="Welcome";
String s2="Welcome";
System.out.println(getCommonPrefix(s1,s2));
}
public static String getCommonPrefix(String s1,String s2){
第一种思路
String minStr="";
String maxStr="";
if(s1.length()<=s2.length()){
minStr=s1;
maxStr=s2;
}else{
minStr=s2;
maxStr=s1;
}
for(int i=0;i<minStr.length();i++){
if(minStr.charAt(i)!=maxStr.charAt(i)){
return minStr.substring(0,i);
}
}
return minStr;
第二种思路
int pa=0;// s1的指针
int pb=0;// s2的指针
while(true){
if(s1.charAt(pa)!=s2.charAt(pb)){
return s1.substring(0,pa);
}
if(s1.charAt(pa)==s2.charAt(pb)){
pa++;
pb++;
}
if(pa==s1.length()){
return s1;
}
if(pb==s2.length()){
return s2;
}
}
}
}
class Demo04_12{
public static void main(String[] args){
String s="AB8C";
//A B 8 C
//0 1 2 3
//3 2 1 0
System.out.println(hexToDeimal(s));
}
public static int hexToDeimal(String s){
int num=0;
char c=' ';
for(int i=0;i<s.length();i++){
c=s.charAt(s.length()-1-i);
/*
A=10 B=11 C=12 D=13 E=14 F=15
i=0 C C*16^0
i=1 8 8*16^1
i=2 B B*16^2
i=3 A A*16^3
*/
if(isLetter(c)){
num+=(c-'A'+10)*Math.pow(16,i);
}else{
num+=(c-'0')*Math.pow(16,i);
}
}
return num;
}
public static boolean isLetter(char c){
return c>='A'&&c<='F';
}
}