输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数

知识点循环
运行时间限制0M
内存限制0
输入

一个正整数N。(N不大于30000)

输出

不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.

样例输入20
样例输出3
import java.util.Scanner;
import java.util.Vector; public class Main{
static int count;
public static void main(String[] args) { Scanner scStr = new Scanner(System.in); //从键盘获取字符串
count= scStr.nextInt(); //将Scanner对象中的内容以字符串的形式取出来
int count1=count;int count2=0;
Vector<Integer> store=new Vector<Integer>();
if(count1<=30000) {
for(int i=1;i<=count1;i++){
if(i%7==0){
store.addElement(i);
count2++;
}
else{
//将i拆分成字符串形式
int sqy=0;int mxf=0;
mxf=i;
while(true){
sqy=mxf-(mxf/10)*10;
if(sqy==7){
store.addElement(i);
count2++;
break;
} //一位一位开始break,一旦各位开始就break
mxf=(mxf/10);
if(mxf==0){ //如果为0跳出循环
break;
}
}
}//else
}
System.out.println(count2);
} //if }
}

用自带包含的函数

将整形转换成字符串

import java.util.Scanner;
public class Main{
public static void main(String[] args) { //System.out.println("请输入数字:");
Scanner scStr = new Scanner(System.in); //从键盘获取字符串
int count= scStr.nextInt(); //将Scanner对象中的内容以字符串的形式取出来
int count2=0;
if(count<=30000) {
for(int i=1;i<=count;i++){
int flag=0;
String str=Integer.toString(i);
for(int j=0;j<str.length();j++){
if(str.charAt(j)=='7') flag=1;
}
if(i%7==0||flag==1){ //是或者的关系
count2++;
}
}
}
System.out.println(count2);
} }
05-11 13:43