java小光棍数 输出四位完全平方数 3n+1问题精编版.docx

上传人:b****5 文档编号:4599768 上传时间:2022-12-07 格式:DOCX 页数:13 大小:17.55KB
下载 相关 举报
java小光棍数 输出四位完全平方数 3n+1问题精编版.docx_第1页
第1页 / 共13页
java小光棍数 输出四位完全平方数 3n+1问题精编版.docx_第2页
第2页 / 共13页
java小光棍数 输出四位完全平方数 3n+1问题精编版.docx_第3页
第3页 / 共13页
java小光棍数 输出四位完全平方数 3n+1问题精编版.docx_第4页
第4页 / 共13页
java小光棍数 输出四位完全平方数 3n+1问题精编版.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java小光棍数 输出四位完全平方数 3n+1问题精编版.docx

《java小光棍数 输出四位完全平方数 3n+1问题精编版.docx》由会员分享,可在线阅读,更多相关《java小光棍数 输出四位完全平方数 3n+1问题精编版.docx(13页珍藏版)》请在冰豆网上搜索。

java小光棍数 输出四位完全平方数 3n+1问题精编版.docx

java小光棍数输出四位完全平方数3n+1问题精编版

小光棍数

为了迎接一年一度光棍节的到来,让我们一起来看看小光棍数吧。

倘若一个数的三次方最后三位数是111,这样的数称为小光棍数。

从0开始计数,第一个小光棍数是471(471^3=104487111),请问第m个小光棍数是多少。

输入

第一行一个整数T表示有T组测试数据

接下来T行每行有一个数m

输出

输出第m个小光棍数

每次输出占一行

样例输入

1

1

样例输出

471

importjava.util.Scanner;

publicclassMain{

    publicstaticvoidmain(String[]args){

        Scannerinput=newScanner(System.in);

        intn,t=input.nextInt();

        while(t>0)

        {

        n=input.nextInt();

        System.out.println(1000*(n-1)+471);

         t=t-1;

        }

    }

}

输出四位完全平方数

ProblemDescription

输出所有形如aabb的四位完全平方数(即该四位数前2位数字相等,后2位数字相等,且该四位数是另外一个数的平方)。

输入

输出

按照从小到大输出4位完全平方数(每个数一行)

publicclassMain

{

    publicstaticvoidmain(String[]args){ 

    intsum;

    intm,n,a,b,i;

    for(sum=1000;sum<=9999;sum++)

     {

        m=sum/1000;

         n=sum/100%10;

         a=sum%10;

         b=sum/10%10;  

          if(m==n&&a==b)

          {

               for(i=32;i<100;i++)

                   if(i*i==sum)

             System.out.println(sum);

           }

           else

                continue;

      }

    }

}

 

3n+1问题

ProblemDescription

任给一个正整数n,如果n为偶数,就将它变为n/2,如果为奇数,则将它乘3加1(即3n+1)。

不断重复这样的运算,经过有限步后,一定可以得到1。

输入

输入1个正整数n(n<=10^10)(多组数据)

输出

输出变化的次数(每组数据一行)

样例输入

3

样例输出

7

importjava.util.Scanner;

publicclassMain

{

   publicstaticvoidmain(String[]args)

{

  Scanners=newScanner(System.in);

  while(s.hasNext())

{

  intn=s.nextInt();

  intsum=0;

  while(n!

=1)

{

  if(n%2==0)

{

  n=n/2;

  sum++;

}

  else

{

  n=3*n+1;

  sum++;

}

}

  System.out.println(sum);

}

}

}

 

继续求多项式

ProblemDescription

输入1个正整数n,

计算1+(1+2)+(1+2+3)+...+(1+2+3+...+n)

输入

输入正整数n(多组数据)

输出

输出1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值(每组数据一行)

样例输入

2

样例输出

4

importjava.util.Scanner;

publicclassMain

{

    publicstaticvoidmain(String[]args){     

        Scanners=newScanner(System.in);

        while(s.hasNext())

        {

        intn=s.nextInt();

        intsum=0; 

        intden=0;

        inti;

        for(i=1;i<=n;i++)

        {

            den+=i; 

            sum+=den; 

        }

        System.out.println(sum);

      }

    }

}

 

再求多项式(含浮点)

ProblemDescription

输入一个整数n,计算 

1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值

输入

输入一个整数n(多组数据)

输出

出1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值,保留2位小数(每组数据一行)

样例输入

1

样例输出

1.00

importjava.text.DecimalFormat;

importjava.util.Scanner;

publicclassMain

{

    publicstaticvoidmain(String[]args){     

        Scanners=newScanner(System.in);

        while(s.hasNext())

        {

        intn=s.nextInt();

        doublet=0;

        doublex=0;

        intf=1;

        inti;

        for(i=1;i<=n;i++)

        {

        x+=f*(2*i-1);

        t=t+1.0/x;

        f=-f;

        }

        DecimalFormatdf=newDecimalFormat("#0.00");

        System.out.println(df.format(t));

      }

    }

}

 

开灯问题

ProblemDescription

计算中心有8个机房,每个机房有n台电脑。

每台电脑都有一个编号,比如8号机房编号就为H1到Hn,我们有时又称为H1为1号机器,H2为2号机器,...。

有一天我们学校跻身世界高校100强,全校所有师生都进行了狂欢庆祝。

罗老师是个很爽快的人,也很喜欢喝酒,那天他喝多了点。

但不巧的是那天晚上正好罗老师值班,罗老师是个很负责的老师。

所以他就把8号机房打开了。

但同学们都还在狂欢,没一个人来上机。

罗老师提着一瓶酒,感觉到很无聊,所以他想玩个游戏。

第一回合,他喝了一口酒,他把所有的电脑都打开。

然后第二回合他喝了一口酒,他把编号是2,4,6,...的电脑全关了。

第三回合,他喝一口酒后就去操作所有编号是3,6,9,...,看到电脑开着就把它关掉,看到电脑关了就把它打开。

他重复这样操作共进行了n个回合。

当他操作完最后一个回合后,罗老师醉倒了。

现在给你这个机房电脑的数目,问你最后共有几台电脑开着?

输入

多组数据测试。



输入只有1行,这行有一个正整数,表示这个机房共有多少个电脑,该数是5到100之间的任意正整数。

输出

你必须输出最后开着的电脑数。

输出该数后不要忘了换行

样例输入

5

样例输出

2

importjava.util.Scanner;

publicclassMain

{

  publicstaticvoidmain(String[]args)

{

    Scanners=newScanner(System.in);

    while(s.hasNext())

    {

        intn=s.nextInt();

        int[]a=newint[n+1];

        intx=0;

        inti,j;

        for(i=1;i<=n;i++)

        {           

        for(j=1;j<=n;j++)

        {

        if(j%i==0)

        {

        if(a[j]==0)

        {

        a[j]=1;

        }elseif(a[j]==1) 

        {

        a[j]=0; 

        }

        }

        }

        }

        for(i=1;i<=n;i++)

        {

        if(a[i]==1)

        {

        x++;

        }

        }

        System.out.println(x);

    }

}

}

奖券数目

ProblemDescription

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。

虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。

某抽奖活动的奖券号码是N位数,要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

输入

 输入奖券号码的位数N(1

注:

首位不为零!

输出

输出不包含“4”的奖券的总数。

样例输入

5

样例输出

52488

importjava.util.Scanner;

publicclassMain

{

    publicstaticvoidmain(String[]args){     

        Scanners=newScanner(System.in);

        while(s.hasNext())

        {

        intn=s.nextInt();

        inti;

        longx=8;

        for(i=1;i

        {

            x=x*9;

        }

        System.out.println(x);

      } 

}

}

 

2n皇后问题

ProblemDescription

给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。

现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。

问总共有多少种放法?

n小于等于8。

  

输入

输入的第一行为一个整数n,表示棋盘的大小。

  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。

输出

  输出一个整数,表示总共有多少种放法。

样例输入

样例输入

 

4

1111

1111

1111

1111

 

样例输出

 

2

 

样例输入

 

4

1011

1111

1111

1111

 

样例输出

 

0

importjava.io.InputStreamReader;  

importjava.util.Scanner;  

    

publicclassMain 

{  

     staticintn,m,map[][],Count;  

     staticbooleant[][],a[][],b[][];  

publicstaticvoidmain(String[]args) 

{  

 Scanners=newScanner(newInputStreamReader(System.in));  

 while(s.hasNext())

 {  

 n=s.nextInt();  

 map=newint[n][n];  

 t=newboolean[n][n];  

 a=newboolean[3][2*n];  

 b=newboolean[3][2*n];  

 inti,j;

 for(i=0;i

 for(j=0;j

 map[i][j]=s.nextInt();  

 Count=0;  

 dfs(0);  

 System.out.println(Count);  

 }  

}  

privatestaticvoiddfs(inti) 

{  

if(i==n)

{  

Count++;  

return;  

}  

for(intj=0;j

{    

    

             if(!

t[i][j]&&map[i][j]!

=0)

             {  

                                

                if(!

a[0][i+j]&&!

a[1][n+i-j]&&!

a[2][j])

                {  

                    

                 t[i][j]=true;  

         a[0][i+j]=a[1][n+i-j]=a[2][j]=true;  

          intk;

          for(k=0; k

          {  

                        if(!

t[i][k]&&map[i][k]!

=0)

                        {  

                                 

                             if(!

b[0][i+k]&&!

b[1][n+i-k]&&!

b[2][k])

                             {  

                                    

                              t[i][k]  = true;  

                      b[0][i+k]=b[1][n+i-k]=b[2][k]=true;  

                      dfs(i+1);  

                       t[i][k]=false;  

                      b[0][i+k]=b[1][n+i-k]=b[2][k]=false;  

                             

                           }  

                        }  

                     }  

          t[i][j]=false;

          a[0][i+j]=a[1][n+i-j]=a[2][j]=false;  

             }   

             }               

       }      

    }     

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1