• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            飛天

            快樂的生活......

             

            [ACM 1002] 數字游戲

            數字游戲
            Time Limit:1000MS  Memory Limit:1024K

            Description:

            最近Catcher對數字游戲很感興趣,他發明了一種新的游戲,給出一個數N,問N是否能表示成某個正整數X的K次冪(K>1),N可能有多種表示方法,請找出最大的X并輸出相應的K。例如 16=2^4=4^2,64=4^3=2^6=8^2則16應表示為4^2,64應表示為8^2。

            Input:

            每行一個正整數N,輸入文件以0為結束標志。(0<N<10^8)

            Output:

            每行有兩個整數,如果能表示,則輸出X K,(中間用一個空格隔開)如果不能,則輸出0 0;

            Sample Input:

            5
            4
            16
            27
            0
            

            Sample Output:

            0 0
            2 2
            4 2
            3 3
            

            Source:

            Jin Qiwei
            /*
            **    Author    :flysky
            **  date    :2008-01-20    
            **    Description: 
            http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1002
            */

            #include 
            <iostream>
            #include 
            <math.h>
            using namespace std;

            #define MAX 50

            void solve(int number)
            {
                
            int k=sqrt(number);
                
            for(int i=k;i>1;--i)
                
            {
                    
            int j=2;
                    
            bool loop=true;
                    
            while(loop)
                    
            {
                        
            if(pow(i,j)==number)
                        
            {
                            cout
            <<i<<" "<<j<<endl;
                            
            return;
                        }

                        
            else if(pow(i,j)>number)
                            loop
            =false;
                        
            else
                            j
            ++;
                    }

                }

                cout
            <<0<<" "<<0<<endl;
            }


            int main()
            {
                
            int input[MAX];
                
            int len=0;
                
            while((cin>>input[len])&&input[len]!=0)
                
            {
                    
            if(input[len]<0||input[len]>pow(10,8))
                        
            continue;
                    len
            ++;
                }

                
            for(int i=0;i<len;++i)
                    solve(input[i]);
                
            return 0;
            }

            posted on 2008-01-20 13:30 飛天 閱讀(1599) 評論(2)  編輯 收藏 引用 所屬分類: ACM

            評論

            # re: [ACM 1002] 數字游戲 2008-08-23 11:03 dengxp

            為什么我提交總是通不過,下面是錯誤提示


            (9) : error C2668: “sqrt”: 對重載函數的調用不明確
            VC8\include\math.h(581): 可能是“long double sqrt(long double)”
            VC8\include\math.h(533): 或“float sqrt(float)”
            VC8\include\math.h(128): 或“double sqrt(double)”
            試圖匹配參數列表“(int)”時
            (16) : error C2668: “pow”: 對重載函數的調用不明確
            VC8\include\math.h(575): 可能是“long double pow(long double,int)”
            VC8\include\math.h(527): 或“float pow(float,int)”
            VC8\include\math.h(489): 或“double pow(double,int)”
            試圖匹配參數列表“(int, int)”時
            (21) : error C2668: “pow”: 對重載函數的調用不明確
            VC8\include\math.h(575): 可能是“long double pow(long double,int)”
            VC8\include\math.h(527): 或“float pow(float,int)”
            VC8\include\math.h(489): 或“double pow(double,int)”
            試圖匹配參數列表“(int, int)”時
            (36) : error C2668: “pow”: 對重載函數的調用不明確
            VC8\include\math.h(575): 可能是“long double pow(long double,int)”
            VC8\include\math.h(527): 或“float pow(float,int)”
            VC8\include\math.h(489): 或“double pow(double,int)”
            試圖匹配參數列表“(int, int)”時
              回復  更多評論   

            # re: [ACM 1002] 數字游戲 2008-08-25 09:29 飛天

            @dengxp
            以上程序是在Dev C++ 4.9.9.2上編譯。
            在vs2005里sqrt,pow找不到對應的重載函數,所以要修改一下:
            #include "stdafx.h"


            #include <iostream>
            #include <math.h>
            using namespace std;

            #define MAX 50

            void solve(int number)
            {
            int k=sqrt((float)number);
            for(int i=k;i>1;--i)
            {
            int j=2;
            bool loop=true;
            while(loop)
            {
            if(pow((float)i,j)==number)
            {
            cout<<i<<" "<<j<<endl;
            return;
            }
            else if(pow((float)i,j)>number)
            loop=false;
            else
            j++;
            }
            }
            cout<<0<<" "<<0<<endl;
            }

            int main()
            {
            int input[MAX];
            int len=0;
            while((cin>>input[len])&&input[len]!=0)
            {
            if(input[len]<0||input[len]>pow(10.0,8))
            continue;
            len++;
            }
            for(int i=0;i<len;++i)
            solve(input[i]);
            return 0;
            }  回復  更多評論   

            導航

            統計

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            Blogs

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            午夜天堂av天堂久久久| 久久综合久久综合久久综合| 国产精品成人久久久久久久| 精品久久久久久久| 久久一区二区三区免费| 伊人久久大香线蕉综合Av| 99久久婷婷国产综合亚洲| 久久99精品久久久久久不卡| 亚洲中文字幕无码久久综合网| 国产成人精品久久免费动漫| 开心久久婷婷综合中文字幕| 久久久久久亚洲精品成人| 日韩AV毛片精品久久久| 国产亚洲精品自在久久| 亚洲欧洲精品成人久久曰影片 | 成人午夜精品无码区久久| 久久99精品国产99久久| 国内精品久久国产| 久久精品中文字幕第23页| 97超级碰碰碰久久久久| 中文字幕久久精品无码| 亚洲人成无码www久久久| 亚洲国产成人久久精品动漫| 人妻无码αv中文字幕久久琪琪布| 深夜久久AAAAA级毛片免费看| 亚洲国产成人久久综合一| 无码超乳爆乳中文字幕久久| 久久久亚洲AV波多野结衣| 久久久久国产精品麻豆AR影院| 久久线看观看精品香蕉国产| 99久久精品国产麻豆| 国产欧美一区二区久久| 久久久无码精品亚洲日韩按摩| 久久综合综合久久综合| 亚洲午夜久久久影院| 2020久久精品亚洲热综合一本| 亚洲国产日韩综合久久精品| 精品久久久一二三区| 久久精品国产色蜜蜜麻豆| 色综合久久久久久久久五月| 亚洲AV成人无码久久精品老人|