关于itoa这个小函数

P1015 [NOIP1999 普及组] 回文数

zasxcvbnmdfghjm @ 2024-05-13 16:50:00

emmmm

本人的代码:

#include<bits/stdc++.h>
using namespace std;
int flag=1,flag1=0;
int main(){
    int n,m,p;
    cin>>n>>m;
    char a[105];
    itoa(m,a,n);
    int k=strlen(a);
    for(int i=1;i<=k;i++){
        p+=pow(n,k-i)*(a[i-1]-'0');
    }
    int cnt=0;
    char b[105];
    while(1){
        cnt++;
        flag=1;
        itoa(p,b,n);
        int m=strlen(b);
        for(int i=1;i<=m;i++){
            p+=pow(n,i-1)*(b[i-1]-'0');
        }
        itoa(p,b,n);
        m=strlen(b);
        for(int j=0;j<=m;j++){
            if(b[j]==b[m-j-1]){
                flag=flag*1;
            }
            else if(m%2==1){
                flag=flag*0;
                break;
            }
            else{
                flag=flag*0;
                break;
            }
        }
        if(flag==1){
            break;
        }
        if(cnt>30){
            flag1=1;
        }
    }
    if(flag1==1){
        cout<<"Impossible";
    }
    else{
        cout<<"STEP="<<cnt;
    }

} 

我写这道题就是专门想试一下这个小函数..... 但,itoa不在标准库里......


by Terrible @ 2024-05-13 16:55:02

itoa 不是标准函数就别用了,洛谷环境里反正不提供这样一个函数,或许可以在网上搜罗一些实现方式。


|