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类型之间相互转换,而且这道题的格式要求很严格所以多设计了两个函数,原来只有两个函数,总体来说就是要细心。
明天继续寻找题目。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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工具