Java自学第四十五天

  今天做pta上面的题。

  

 

   代码如下

  

import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cn=new Scanner(System.in);
int a=cn.nextInt();
int sum=0;
if(zeng(a)!="0")
{ while(sum!=6174){
sum=huan(zeng(a))-huan(jian(a));
System.out.print(zeng(a)+" "+"-"+" "+jian(a)+" "+"= "+sumhuan(sum));
if(sum!=6174){
System.out.println();
a=sum;
}
}
}
else if(zeng(a)=="0") {
System.out.print(xt(a)+" "+"-"+" "+xt(a)+" "+"="+" 0000");
}
}
static String zeng(int a){
int[] arr=new int[4];
arr[0]=a/1000;
arr[1]=(a-arr[0]*1000)/100;
arr[2]=(a-arr[0]*1000-arr[1]*100)/10;
arr[3]=(a-arr[0]*1000-arr[1]*100-arr[2]*10);
for(int i=0;i<3;i++){
for(int j=i+1;j<4;j++){
if(arr[j]>arr[i]){
int t=0;
t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
}
if((arr[0]==arr[1]&&arr[0]==arr[2]&&arr[0]==arr[3]))return "0";
else {

char[] c=new char[4];
for(int i=0;i<4;i++){
c[i]=(char)(arr[i]+48);
}
return new String(c,0,4);
}
}


static String jian(int a){
int[] arr=new int[4];
arr[0]=a/1000;
arr[1]=(a-arr[0]*1000)/100;
arr[2]=(a-arr[0]*1000-arr[1]*100)/10;
arr[3]=(a-arr[0]*1000-arr[1]*100-arr[2]*10);
for(int i=0;i<3;i++){
for(int j=i+1;j<4;j++){
if(arr[j]<arr[i]){
int t=0;
t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
}
if((arr[0]==arr[1]&&arr[0]==arr[2]&&arr[0]==arr[3]))return "0";
else {

char[] c=new char[4];
for(int i=0;i<4;i++){
c[i]=(char)(arr[i]+48);
}
return new String(c,0,4);
}
}


static int huan(String s) {
char[] c=s.toCharArray();
int[] a=new int[s.length()];
for(int i=0;i<4;i++) {
a[i]=(int)c[i]-48;
}
return a[0]*1000+a[1]*100+a[2]*10+a[3];
}
static String xt(int a) {
char[] c=new char[4];
for(int i=0;i<4;i++) {
c[i]=(char)(a/1000+48);
}
return new String(c,0,4);
}
static String sumhuan(int a) {
int[] arr=new int[4];
arr[0]=a/1000;
arr[1]=(a-arr[0]*1000)/100;
arr[2]=(a-arr[0]*1000-arr[1]*100)/10;
arr[3]=(a-arr[0]*1000-arr[1]*100-arr[2]*10);
char[] c=new char[4];
for(int i=0;i<4;i++){
c[i]=(char)(arr[i]+48);
}
return new String(c,0,4);
}
}

  这道题目我感觉我的方法不是很好,因为用了100多行才实现,我设计了几个函数用来int和String类型之间相互转换,而且这道题的格式要求很严格所以多设计了两个函数,原来只有两个函数,总体来说就是要细心。

  明天继续寻找题目。

posted @   软工新人  阅读(119)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示