1.无尽的石头
![](https://img-blog.csdnimg.cn/direct/93c3a2b0ffa4430fb6976c6656f9b71e.png)
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int t=scan.nextInt();//t个询问
int []n=new int[t];
for(int i=0;i<t;i++)
{
n[i]=scan.nextInt();//n[i]为目标石头
}
for(int i=0;i<t;i++)//遍历询问
{
int cnt=0;//计步
int stone=1;//初始石头编号
while(stone<n[i])
{
int x=0;//x为n的各位数字之和
String str=stone+"";
char []c=str.toCharArray();
for(int j=0;j<c.length;j++)
{
x+=c[j]-'0';//每一位的数累加
}
stone+=x;
cnt++;
if(stone==n[i])
{
System.out.println(cnt);
break;
}
else if(stone>n[i])
{
System.out.println("-1");
break;
}
}
}
scan.close();
}
2.DNA序列修正
![](https://img-blog.csdnimg.cn/direct/4b8d7032317d463486b685f0fe5ea06a.png)
import java.util.*;
public class Main
{
static char com(char x)
{
char y=0;
if(x=='A')
y='T';
if(x=='T')
y='A';
if(x=='C')
y='G';
if(x=='G')
y='C';
return y;
}
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n=scan.nextInt();
char []dna1=scan.next().toCharArray();
char []dna2=scan.next().toCharArray();
char []a=new char[n];
char t;
int cnt=0;
int i,j;
for(i=0;i<n;i++)
a[i]=com(dna1[i]);
for(i=0;i<n;i++)
{
if(a[i]!=dna2[i])
{
for(j=i+1;j<n;j++)
{
if(dna2[j]==a[i]&&dna2[i]==a[j])
//第二个条件不写的话部分测试样例通不过
{
t=dna2[i];
dna2[i]=dna2[j];
dna2[j]=t;
cnt++;
break;
}
}
if(j==n&&a[i]!=dna2[i])
{
dna2[i]=a[i];
cnt++;
}
}
}
System.out.print(cnt);
scan.close();
}
}
3.小蓝的漆房
![](https://img-blog.csdnimg.cn/direct/0f6ae74fcfd24b66be893d5ec86d80a7.png)
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int t=scan.nextInt();
for(int i=0;i<t;i++)
{
int n=scan.nextInt();//房子个数
int k=scan.nextInt();//一天涂的区间长度
int[] a=new int[n];
for(int j=0;j<n;j++)
{
a[j]=scan.nextInt();//房子的颜色
}
int ans=99999;
for(int h=1;h<=60;h++)//遍历每一种颜色
{
int cnt=0;//记录天数
for(int j=0;j<n;j++)
{
if(a[j]!=h)
{
cnt++;
j+=k-1;
}
}
ans=Math.min(ans,cnt);
}
System.out.println(ans);
}
scan.close();
}
4.小蓝和小桥的挑战
![](https://img-blog.csdnimg.cn/direct/52391d9ec877434aac48859d9574a486.png)
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int t=scan.nextInt();
for(int i=0;i<t;i++)
{
int cnt=0,sum=0;
int n=scan.nextInt();//物品数量
int[] a=new int[n];
for(int j=0;j<n;j++)
{
a[j]=scan.nextInt();
sum+=a[j];
if(a[j]==0)
{
cnt++;
sum++;// !一开始这步没写,执行操作后所记的价值也随之+1
}
}
if(sum==0)
cnt++;
System.out.println(cnt);
}
scan.close();
}