Fork me on Gitee

数字处理

问题描述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;
}

 

 

 

 

 

 

 

 

 

 

posted @ 2019-11-02 11:15  ---dgw博客  阅读(629)  评论(0编辑  收藏  举报