• <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 飛天 閱讀(1622) 評論(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| 久久精品国产69国产精品亚洲| 狠狠久久综合| 久久久黄色大片| 成人精品一区二区久久久| 少妇高潮惨叫久久久久久| 精品久久久久久无码人妻蜜桃| 亚洲中文字幕无码一久久区| 思思久久99热免费精品6| 久久久青草久久久青草| 欧美伊人久久大香线蕉综合| 久久国产福利免费| 久久se精品一区二区| 久久精品中文字幕一区| 久久久久亚洲av成人无码电影| 国产精品国色综合久久| 中文字幕热久久久久久久| 精品久久久久久久久久中文字幕| 久久精品麻豆日日躁夜夜躁| 久久久久久久久久久久久久| 久久亚洲2019中文字幕| 久久97久久97精品免视看| 午夜不卡888久久| 久久99国产精品久久| 精品国产VA久久久久久久冰| 蜜臀久久99精品久久久久久小说| 人人妻久久人人澡人人爽人人精品| 欧美麻豆久久久久久中文| 久久综合九色欧美综合狠狠| 狠狠久久综合伊人不卡| 99久久夜色精品国产网站| 久久精品国产亚洲Aⅴ香蕉| 91麻豆精品国产91久久久久久| 久久久中文字幕| 久久人人爽人人爽人人片AV东京热 | 亚洲日韩欧美一区久久久久我| 激情五月综合综合久久69| 欧美国产精品久久高清| 久久久这里有精品| 久久99国产综合精品|