为了节约用电,星际争霸里的神族(Protoss)每天需要在战斗结束后关闭神族水晶(Pylon)的电源。 神族的电源开关是由一个巨大的网络与水晶连接的,每个水晶对应一个开关,其中第 i 个开关会同时改变第 i 个水晶,第 2 * i 个水晶以及第 3 * i 个水晶… 的状态(水晶和开关的编号都从 1 开始)。 现在给出所有 n 个水晶的初始状态,问最少需要多少次开关操作才能使所有水晶 变为关闭状态。
输入
一个字符串,包含 N 个字符(1<= N <=1000)。其中第 i 个字符为 1 表示为初始状态为 开,0 表示为初始状态为 关。
输出
一个整数,表示操作开关使所有水晶变为 关闭状态 最少需要的操作次数。 如果不可能关掉所有开关,输出 -1。
输入样例
111111
101010101
11101110111011011110
复制样例
输出样例
1
2
4
没有太大难度,从头到尾遍历一遍即可
`private static String solution(String line)
{
String a[] = line.split("");
int a1[] = new int[a.length+1];
for(int i = 1;i<=a.length;i++)
{
a1[i] =Integer.parseInt(a[i-1].trim());
}
int temp=0;
for(int i = 1;i<=a.length;i++)
{
if(a1[i]==1)
{ int j =i;
int te1= j;
while(j<=a.length)
{
if(a1[j]==1)
a1[j]=0;
else
{
a1[j]=1;
}
j +=te1;
}
temp++;
}
}
return String.valueOf(temp);
}