zoukankan      html  css  js  c++  java
  • A1024 Palindromic Number (25分)(大整数的四则运算)

    一、技术总结见上篇博客

    二、参考代码

    #include<iostream>
    #include<cstring>
    using namespace std;
    struct bign{
    	int d[1000];
    	int len;
    	bign(){
    		memset(d, 0, sizeof(d));
    		len = 0;
    	}
    };
    bign change(char str[]){
    	bign c;
    	for(int i = 0; i < strlen(str); i++){
    		c.d[c.len++] = str[strlen(str) - 1 - i] - '0';
    	}
    	return c;
    }
    bign add(bign a){
    	bign c;
    	int carry = 0;
    	for(int i = 0; i < a.len; i++){
    		int temp = a.d[i] + a.d[a.len - 1 - i] + carry;
    		c.d[c.len++] = temp % 10;
    		carry = temp / 10;
    	}
    	if(carry != 0){
    		c.d[c.len++] = carry;
    	}
    	return c;
    }
    bool judge(bign a){
    	for(int i = 0; i < a.len/2; i++){
    		if(a.d[i] != a.d[a.len - 1 - i]) return false;
    	}
    	return true;
    }
    int main(){
    	int k, cnt = 0;
    	char str[1000];
    	scanf("%s%d", str, &k);
    	bign c = change(str);
    	for(int i = 0; i < k; i++){
    		if(i == 0 && judge(c)){
    			break;
    		}
    		c = add(c);
    		if(judge(c)){
    			cnt++;
    			break;
    		}
    		cnt++;
    	}
    	for(int i = c.len - 1; i >= 0; i--){
    		printf("%d", c.d[i]);
    		if(i == 0) printf("
    ");
    	}	
    	printf("%d", cnt);
    	return 0;
    }
    
  • 相关阅读:
    菜根谭#245
    菜根谭#244
    菜根谭#243
    菜根谭#242
    菜根谭#241
    菜根谭#240
    菜根谭#239
    菜根谭#238
    菜根谭#237
    [转载]Linux 内核list_head 学习(一)
  • 原文地址:https://www.cnblogs.com/tsruixi/p/13221692.html
Copyright © 2011-2022 走看看