数字处理
问题描述1:
编写一个程序,从键盘输入n个非零整数(0<n<=100000),对每个整数n进行如下处理:将整数的备位数字取出来相加,如果结果是一位数则输出该数,否则重复上述过程,直到得到的结果为一位数,并输出该结思。
#include<stdio.h> main() { int n,m; while(1){ scanf("%d",&n); if(n==0)break; for(m=0;n!=0;){ m=m+n%10; n=n/10; } while(!(m>=1&&m<=9)){ n=m; for(m=0;n!=0;){ m=m+n%10; n=n/10; } } printf("%d\n",m); } return 0; }
问题2;
多组数据,每组数据包含一个整数N(0<N<100),其后是N个整数,各个整数之间以空格分隔。当N为0时表示输入结束,这一组数据不需要输出结果。
#include<stdio.h> int main(){ int n,evenx,oddx,m,i; while(1){ scanf("%d",&n); if(n==0){ break; } evenx=0; oddx=0; for(i=1;i<=n;i++){ scanf("%d",&m); if((m&1)==0){ evenx+=m; }else{ oddx+=m; } } if((n&1)==0){ printf("%d",evenx); }else{ printf("%d",oddx); } } return 0; }