赞
踩
1.题目描述
小明对数位中含有2、0、1、9 的数字很感兴趣(不包括前导0),在1 到
40 中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574。
请问,在1 到n 中,所有这样的数的和是多少?
输入:
输入一行包含一个整数n。
输出:
输出一行,包含一个整数,表示满足条件的数的和。
【样例输入】
40
【样例输出】
574
2.思路
主函数 用来加和
另外一个函数用来判断 某数是否含有2、0、1、9
3.代码实现
方法一:
package 蓝桥杯; import java.util.Scanner; public class 特别数的和 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n =sc.nextInt(); int sum=0; for(int i=0;i<=n;i++) { if(Check(i)) { sum+=i; } } System.out.println(sum); } public static boolean Check(int n) { while(n!=0) { if(n%10==1||n%10==2||n%10==9||n%10==0) return true; n=n/10; } return false; } }
方法二:
package 蓝桥杯; import java.util.Scanner; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n =sc.nextInt(); int sum=0; for(int i=0;i<=n;i++) { int b=i;//必须拿个中间变量b来,不然运行不出来 //菜鸟瑶的想法是 b暂时存放 判断某个数是否含2,0,1,9。 但是加和要用到的是原始的 //i,所以b作为中间变量用来判断,不知道是不是这样 while(b!=0) { if(b%10==1||b%10==2||b%10==9||b%10==0) //i=i/10; { sum+=i; break; } b=b/10; } } System.out.println(sum); } }
4.答案
574
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。