• PAT 甲级 1136 A Delayed Palindrome (20 分)


    思路:

    1.用数组保存这个超级大的数字,每个位置存一位;
    2.用循环每一位相加,进位就做标记,下一次加的时候多+1;
    3.最后循环出来检查标记位,如果有标记则最高位再放一个1;

    代码:

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    vector<int> v,vr,vrs;
    bool isPal(){
       for(int i=0;i<v.size()/2;i++)
       	if(v[i]!=v[v.size()-i-1]) return false;
       return true;
    }
    void printv(const vector<int> & vec){
       for(auto i:vec) printf("%d",i);
    }
    int main(){
       string s;
       cin>>s;
       for(auto c:s) v.push_back(c-'0');
       for(int i=0;i<10;i++){
       	if(isPal()){
       		printv(v); printf(" is a palindromic number.");
       		return 0;
       	}
       	vr=v;
       	reverse(vr.begin(),vr.end());
       	short flag=0;
       	vrs.clear();
       	for(int i=0;i<v.size();i++){
       		vrs.push_back((v[i]+vr[i]+flag)%10);
       		flag=(v[i]+vr[i]+flag)/10;
       	}
       	if(flag==1) vrs.push_back(flag);
       	reverse(vrs.begin(),vrs.end());
       	printv(v); printf(" + "); printv(vr); printf(" = "); printv(vrs); printf("
    ");
       	v=vrs;
       }
       printf("Not found in 10 iterations.");
       return 0;
    }
    
  • 相关阅读:
    用Jquery控制文本框只能输入数字和字母
    Math:弧度制
    python学习之案例
    python自动化模块之实践一
    python学习之路 第六天
    python学习之路 第五天
    python学习之路 第四天
    python学习之路 第三天
    python学习之路 第二天
    python学习之路 第一天
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12309082.html
Copyright © 2020-2023  润新知