逻辑题答案

  • 格式:txt
  • 大小:7.65 KB
  • 文档页数:3

质数:不能被整除的
for(int i=2;i<100;i++){
for(int j=2;j<100;j++){
if(i!=j){
if(j%i!=0){
System.out.println(i);
break;
}
}
}
}

质因数:
static boolean is_odd(int n)
{
if(n==2||n==3) return true;
if(n%2==0) return false;
int i;
for(i=3;i<=n/2;i+=2)
if(n%i==0) return false;
return true;
}

public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("输入数值");
int n=in.nextInt();
int i;
System.out.print(n+"=");
for(i=2;i<=n;i++)
{
if(!is_odd(i)) continue;
if(n%i==0)
{
while(true)
{
System.out.print(i);
n/=i;
if(n!=1) System.out.print("*");
if(n%i!=0) break;
}
}
}
System.out.println();
}


10的几次幂
public static void main(String args[]){
int num=1;
int a=0;
for(int j=1;j<5;j++){
num*=2;
System.out.println(2*num);
a+=num;
}
System.out.println(a);
}
2的3次幂
int total=0;
int tmp=0;
for(int i=0;i<3;i++){
tmp=1;
for(int j=0;jtmp*=2;
}
total+=tmp;
System.out.println(tmp);//打印 过程结果
}
System.out.println(total);

完数:一个数正好得它的因子之和
int N,m,s;
N=1000;
int i;
System.out.println("小于"+N+"的完数有");
for(i=1;i<=N;i++)
{
s=0;
for(m=1;m{
if(i%m==0)
s+=m;

}
if(s==i)
{
System.out.println(i);
}
}


// 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
double i=1,j=2,s,sum=0;
int k=1;
while(k<=20)
{
sum=sum+j/i;
s=j;
j=i+j;
i=s;
k++;
}
System.out.println(sum);

//菱形
for(int i=1;i<=7;i+=2){
for(int j=1;j<=i;j++)
System.out.println("*");
System.out.println();

}
for(int i=5;i>=1;i-=2){
for(int j=1;j<=i;j++)
System.out.println("*");
System.out.println();
}

//随机数
int[] ints = new int[10];
for(int i=0;i<10;i++) {
int temp = (int) (Math.random()*10);
for(int j=0;jif(temp==ints[j]) {
temp = (int) (Math.random()*10);
j=0;
}
}
ints[i]=temp;
}
Arrays.sort(ints);
for(int index:ints) {
if(index%10==0)
System.out.println();
System.out.print(index+" ");
}
//输入年月日,显示是一年的第一天

String str="abc";
System.out.println( str.charAt(1));//提取字符
System.out.println(str.indexOf("b"));//查找.返回类型为int 字符
System.out.println( str.substring(1));//从第几位取 到最

后.数字
System.out.println(str.replace('a', 'f')); //替换


int sum=0,lemp;
Scanner sc=new Scanner(System.in);
System.out.println("请输入年分:");
int str= sc.nextInt();
System.out.println(str);
System.out.println("请输入月份:");
int str1= sc.nextInt();
System.out.println(str1);
System.out.println("请输入日:");
int str2= sc.nextInt();
System.out.println(str2);
switch(str1){
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:System.out.println("data error");break;
}
sum+=str2;
if(str%400==0||(str%4==0&&str%100!=0)){
lemp=1;
}else{
lemp=0;
}
if(lemp==1&&str1>2) /*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
System.out.println(sum);

}


//阶乘 阶乘不是i*i-1 几的阶乘直接用-- *=
int sum=1;
for(int i=5;i>=1;i--){
sum*=i;

}
System.out.println(sum);


//排序

int a;
int arr[]={1,3,2,5,4};
for(int i=1;iif(arr[i]a=arr[i];
arr[i]=arr[i-1];
arr[i-1]=a;
}

}
for(int i=0;iSystem.out.println(arr[i]);
}


//数组里面去掉重复值 把数组放到list里面
int arr[]={1,8,2,8,4};
List list=new ArrayList();
for(int i=1;iif(!list.contains(arr[i])){
list.add(arr[i]);
}
}
list.add(arr[0]);
for(int i=0;iSystem.out.println(list.get(i));
}
数组里面去掉重复值,借用另一个数组
//
int arr[]={1,8,2,8,4};
int chan[]=new int[arr.length];//new 一个arr长度的数组
int count=0;
for(int i=0;ichan[count]=arr[i];
for(int j=0;jif(chan[j]==chan[count]){
count--;
break;
}
}
count++;
}
for(int i=0;iSystem.out.println(chan[i]);
}


//水仙花数
int g,s,b,sum=0;
for(int i=100;i<=999;i++){
//取一下十位百位个位
b=i/100;
s=i%100/10;
g=i%10;
sum=(b*b*b+s*s*s+g*g*g);
if(i==sum){
System.out.println(i);
}
}

//4为排列组合
for(int i=1;i<=4;i++){//4位数 3个循环 判断互不相等
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
if(i!=j&&k!=i&&k!=j){
System.out.println(i);
System.out.println(j);
System.out.println(k);
}

}
}
}

//题目:海

滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,
// 它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
// int lastmonkey=1;
// for(int i=0;i<5;i++){
// lastmonkey=5*lastmonkey+1;//假设最后一个猴子拿一个桃子
// }
// System.out.println(lastmonkey);
///一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下
float sum=100.0f;//浮点型精确
float height=100;
for(int i=0;i<10;i++){
height=height/2;//高度
sum+=height*2;//总长

}
System.out.println(sum);
//从1报到3,第三个人出列问最后剩的是原来的第几号?
Scanner s = new Scanner(System.in);
System.out.print("请输入总人数:");
int n = s.nextInt();

boolean[] arr = new boolean[n];
for(int i=0; iarr[i] = true;//下标为TRUE时说明还在圈里
}

int leftCount = n; //圈中剩下的人数
int countNum = 0;
int index = 0;

while(leftCount > 1) {
if(arr[index] == true) {//当在圈里时
countNum ++; //报数递加
if(countNum == 3) {//报道3时
countNum =0;//从0开始继续报数
arr[index] = false;//此人退出圈子
leftCount --;//剩余人数减一
}
}
index ++;//每报一次数,下标加一
if(index == n) {//是循环数数,当下标大于n时,说明已经数了一圈,
index = 0;//将下标设为零重新开始。
}
}
System.out.print("最后剩下的是:");
for(int i=0; iif(arr[i] == true) {
System.out.println(i);
}
}
方法2
ArrayList a = new ArrayList();
for(int i=1;i<=10;i++)
{
a.add(i);//把每个小朋友的号码依次放入.
}
while(a.size()>1)
{
for(int i=0;i{
m++;
if(m%3==0)
{
m = 0;
a.remove(i);
i--;
}
}
}
System.out.println("最后一个小朋友的号码是: " +a.get(0));

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。