1013 - 奇怪的信

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

有一天, 小明收到一张奇怪的信, 信上要小明计算出给定数各个位上数字为偶数的和。
例如:5548,结果为12,等于 4 + 8 。
小明很苦恼,想请你帮忙解决这个问题。

题目输入

输入数据有多组。每组占一行,只有一个整整数,保证数字在32位整型范围内。

题目输出

对于每组输入数据,输出一行,每两组数据之间有一个空行。

输入/输出样例

输入格式

415326
3262

输出格式

12

10

C语言解答

#include<stdio.h>

int main()
{
	int n,t,s,a=0;
	while(scanf("%d",&n)!=EOF)
	{
		if(a++)
			printf("\n");
		s=0;
		while(1)
		{
			t=n%10;
			if(t%2==0)
				s+=t;
			n/=10;
			if(n==0)
				break;
		}
		printf("%d\n",s);
	}
	return 0;
}

C++解答

#include<stdio.h>

int main()
{
	int n,t,s,a=0;
	while(scanf("%d",&n)!=EOF)
	{
		if(a++)
			printf("\n");
		s=0;
		while(1)
		{
			t=n%10;
			if(t%2==0)
				s+=t;
			n/=10;
			if(n==0)
				break;
		}
		printf("%d\n",s);
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			char[] cs = in.nextLine().toCharArray();
			int cou = 0;
			for(char c:cs)
				if(c%2==0)
					cou+=c-48;
			System.out.println(cou);
			System.out.println();
		}
	}

}

Python解答

import sys
  
for line in sys.stdin:
    a = line.split()[0]
    list = [int(i) for i in a if int(i)%2==0 ]
    if len(list)!=0:
       print reduce(lambda x,y:x+y,list)
       print ''
    else:
       print 0
       print ''