为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1. 输入描述: 输入包括一个整数n,(1 ≤ n ≤ 10^5) 输出描述: 输出一个整数,表示n的相反数 输入例子1: 1325 输出例子1: 6556
好多c的基础都忘掉了,scanf都差点拼错,题很简单,就是写的比较乱,忘得太多了。以后还是要没事写一道。。。。。
1 #include <stdio.h> 2 #include <string.h> 3 #include<stdlib.h> 4 #define maxn 100005 5 int main(){ 6 char num1[maxn]; 7 char num2[maxn]; 8 scanf("%s", num1); 9 10 int lens = strlen(num1); 11 int i, x,y, bb; 12 int j = 0; 13 for(i = 0; i<lens; i++){ 14 x = num1[lens-i-1]-‘0‘; 15 y = num1[i]-‘0‘; 16 int aa = x+y; 17 aa+=j; 18 if(aa>=10){ 19 bb = aa-10; 20 num2[lens-i-1] = ‘0‘+bb ; 21 j = 1; 22 } 23 else{ 24 num2[lens-i-1] = aa+‘0‘; 25 j = 0; 26 } 27 } 28 if(j==1){ 29 printf("1"); 30 } 31 printf("%s\n", num2); 32 }
时间: 2024-11-07 17:01:49