第一行输入一个整数
表示测试数据组数,每组测试数据描述如下:
接下来一行输入一个整数
表示待判断的数字。
对于每一组测试数据,在一行上输出对应的情绪类型
、
或
。
3 72 73 12
H S G
对于
,其数字集合为
;
能被
整除但不能被
整除,因此输出
。
对于
,其数字集合为
;
不能被
也不能被
整除,因此输出
。
对于
,其数字集合为
;
能被
和
都整除,因此输出
。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
long long num;
while(t--)
{
cin>>num;
long long res=0,n=num,t=0;
while(n)
{
int m=n%10;
n/=10;
if(m==0||num%m==0)
res++;
t++;
}
if(res==0)
cout<<"S"<<endl;
else if(res==t)
cout<<"G"<<endl;
else
cout<<"H"<<endl;
}
return 0;
} k=input() for i in range(int(k)) : n=input() flag1=flag2=0#flag1为1表示有无法整除的数,flag2为1表示有可以整除的数 for j in n : if j!='0'and int(n)%int(j)!=0 : flag1=1 if j=='0'or int(n)%int(j)==0 : flag2=1 if flag1==0 and flag2==1 :print('G') elif flag1==1 and flag2==0 : print('S') else :print('H')
#include <bits/stdc++.h>
using namespace std;
int main(){
int T;
cin>>T;
for(int i=0;i<T;i++){
long long n;
int j=0,sum=0;
char ans='S';
cin>>n;
string num=to_string(n);
while(j<num.size()){
if(num[j]=='0'||n%(num[j]-'0')==0){
sum++;
}
j++;
}
ans = sum>0 ? 'H':'S';
if(sum==num.size())
ans='G';
cout<<ans<<endl;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main(){
long T,n;
cin>>T;
while(T--){
cin>>n;
int cnt=0, w=0;
long x = n;
while(x){
int t = x%10;
if(t==0 || n%t==0)
cnt++;
x /= 10;
w++;
}
if(cnt==w)
cout<<"G"<<endl;
else if(cnt==0)
cout<<"S"<<endl;
else
cout<<"H"<<endl;
}
return 0;
} /*
思路:利用标志的方式判断,创建两个标志,当能够整除任一个部分数字,该标志为true,
当不能整除任一个部分数字,该标志为true
这样通过两个标志的组合便可以得到结果
注意除数为0的情况
注意int最多只能存10位的数,题目中是10^12,所以用long
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long[] arr = new long[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextLong();
}
for (int i = 0; i < arr.length; i++) {
boolean oneNum = false;
boolean noNum = false;
long temp = arr[i];
while(temp > 0) {
long di = temp % 10;
if(di == 0 || arr[i] % di == 0) {
oneNum = true;
}else {
noNum = true;
}
temp /= 10;
}
if(oneNum == true && noNum == true) {
System.out.println("H");
}else if(oneNum == false && noNum == true) {
System.out.println("S");
}else if(oneNum == true && noNum == false) {
System.out.println("G");
}
}
}
} import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
long n = Integer.valueOf(sc.nextLine());
for(int i =0;i<n;i++){
String str = sc.nextLine();
long num = Long.parseLong(str);
int total = 0;
int length = str.length();
for(int j =0;j<length;j++){
int value = str.charAt(j)-48;
if(value==0){
total++;
}else if(num%value==0)total++;
}
outPut(total,length);
}
}
}
public static void outPut(int total,int length){
if(total==length){
System.out.println("G");
}else if(total>0){
System.out.println("H");
}else{
System.out.println("S");
}
}
} /*
思路:利用标志的方式判断,创建两个标志,当能够整除任一个部分数字,该标志为true,
当不能整除任一个部分数字,该标志为true
这样通过两个标志的组合便可以得到结果
注意除数为0的情况
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(br.readLine());
long[] arr = new long[m];
for(int i = 0;i<m;i++)
arr[i] = Long.parseLong(br.readLine());
for(int i = 0;i<m;i++){
boolean onenum = false;
boolean nonum = false;
long temp = arr[i];
while(temp > 0){
long divi = temp%10;
if(divi == 0 || arr[i]%divi == 0){
onenum = true;
}else{
nonum = true;
}
temp = temp/10;
}
if(onenum == true && nonum == true){
System.out.println("H");
}else if(onenum == false && nonum == true){
System.out.println("S");
}else if(onenum == true && nonum ==false)
System.out.println("G");
}
}
}