![2cdd6b0397bdd3558fab4d69550f0b1c.png](https://i-blog.csdnimg.cn/blog_migrate/8b1abc0e5a74000762d11bdfca9e3185.jpeg)
第三十四题
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
代码:
<pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; background: none;">
public class lianxi34{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入人数n的值");
int n = in.nextInt();
boolean[] a = new boolean[n];
for(int i=0;i<a.length;i++){
a[i]=true;
}
int left=n,count=0,index=0;
while(left>1){
if (a[index]==true) {
count++;
if (count==3) {
count=0;
a[index]=false;
left--;
}
}
index++;
if (index==n) {
index=0;
}
}
for(int i=0;i<a.length;i++){
if (a[i]==true) {
System.out.println("留下的是原来的"+(i+1)+"位");
}
}
}
}
运行结果:
![88fa92c09e593d3f7f6cb12d2578dddf.png](https://i-blog.csdnimg.cn/blog_migrate/a064dec51da0a7872e3d5962aadd93b3.jpeg)
第三十五题
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
代码:
<pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; background: none;">
public class lianxi35 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n = in.nextInt();
double sum=0;
if (n%2==0) {
for(int i=2;i<=n;i+=2){
sum = sum + (double)1/i;
}
}else{
for(int i=1;i<=n;i+=2){
sum = sum + (double)1/i;
}
}
System.out.println(sum);
}
}
运行结果:
![ad56001b36b53aee515a8f90fb88ce6c.png](https://i-blog.csdnimg.cn/blog_migrate/20cf0cd55cd966ac7b8aa821e607b30b.jpeg)
![6c79882bfcf92975dd515e15261ce381.png](https://i-blog.csdnimg.cn/blog_migrate/5b849f0eb5e1ce07dea737cc1f4fec2a.jpeg)
第三十六题
若正整数N的所有因子之和等于N的倍数,则称N为红玫瑰数(完备数)。如28的所有因子之和为1+2+4+7+14+28=28*2,故28是红玫瑰数。求[1,700]之间最大的红玫瑰数。
代码:
<pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; background: none;">
public class lianxi36{
public static void main(String[] args) {
for(int n=700;n>=1;n--){
int sum=0;
for(int i=1;i<n;i++){
if(n%i==0){
sum+=i;
}
}
if(sum%n==0){
System.out.println(n);
break;
}
}
}
}
运行结果:
![825852bd6e2bcad4a810006a9e7ade5d.png](https://i-blog.csdnimg.cn/blog_migrate/46d0389e7612b9d4446aa31f86258d79.jpeg)
想学习Java的小伙伴注意啦!我整理了一套从最基础的Java入门级学习到Java框架内容,送给每一位想要学习Java的小伙伴,想要获取资料,可以关注微信公众号“速学Java”哦,这里是小白聚集地,欢迎初学和进阶中的小伙伴~
关注微信公众号:速学Java
![22c01066d66737848e796ed0910e8efd.png](https://i-blog.csdnimg.cn/blog_migrate/b326c7093ce69c95ae10781482ffdbf6.jpeg)