1.奇虎360 9.15
1.因數分解
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int Num=1000;
int zhishu[1000];
int calculateZhishu(){
// zhishu=(int*)malloc(sizeof(int)*Num);
Num=1;
zhishu[0]=2;
for(int i=3;i<1000;i++){
bool flag=true;
for(int j=0;j<Num;j++){
if(i%zhishu[j]==0){
flag=false;
break;
}
}
if(flag){
zhishu[Num]=i;
Num++;
}
}
}
void testzhishu(){
calculateZhishu();
for(int i=0;i<20;i++)
{
printf("%d\n",zhishu[i]);
}
}
int dictv1[10]={1,0,1,1,0,1,1,1,1,1};
int dictv2[10]={0,0,1,1,0,1,1,0,1,1};
int dictv3[10]={1,0,1,1,0,1,1,0,1,1};
int dicth1[20]={1,1,0,1,0,1,0,1,1,1, 1,0,1,0,0,1,1,1,1,1};
int dicth2[20]={1,1,0,1,1,0,0,1,0,1, 0,1,1,1,0,1,1,1,0,1};
int yinshu[20];
int ysNum[20];
int ysTotal=0;
char str[32];
char temp[32];
void fenjie(int number){
for(int i=0;i<20;i++){
yinshu[i]=0;
ysNum[i]=0;
}
strset(str,0);
int count=0;
ysTotal=0;
for(int i=0;i<Num;i++){
count=0;
while(number%zhishu[i]==0){
number=number/zhishu[i];
//ysNum++;
count++;
sprintf(temp,"%d*",zhishu[i]);
strcat(str,temp);
}
/*if(count>0){
ysTotal++;
yinshu[ysTotal-1]=zhishu[i];
ysNum[ysTotal-1]=count;
sprintf(temp,"%d*",zhishu[i]);
strcat(str,temp);
}*/
}
str[strlen(str)-1]=0;
}
void ppprint(int number,int level){
int *dict;
switch(level)
{
case 0:
dict=dictv1;
}
int len=1;
int nn=number;
while(nn/10>=1){
len++;
nn=nn/10;
}
}
void show(){
// int level=0;
for(int level=0;level<5;level++){
for(int i=0;i<strlen(str);i++)
{
char c=str[i];
//printf("%c %d\n",c,c-'0');
if(c>='0'&&c<='9'){
switch(level){
case 0:
printf(" ");
if(dictv1[c-'0'])printf("-");
else printf(" ");
printf(" ");
break;
case 1:
if(dicth1[2*(c-'0')])printf("|");
else{
printf(" ");
}
printf(" ");
if(dicth1[2*(c-'0')+1])printf("|");
else{
printf(" ");
}
break;
case 2:
printf(" ");
if(dictv2[c-'0'])printf("-");
else printf(" ");
printf(" ");
break;
case 3:
if(dicth2[2*(c-'0')])printf("|");
else{
printf(" ");
}
printf(" ");
if(dicth2[2*(c-'0')+1])printf("|");
else{
printf(" ");
}
break;
case 4:
printf(" ");
if(dictv3[c-'0'])printf("-");
else printf(" ");
printf(" ");
break;
}
}
else{
if(level==2){
printf(" * ");
}else
{
printf(" ");
}
}
}
printf("\n");
}
}
int main(){
calculateZhishu();
int N;
//testzhishu();
while(scanf("%d",&N)!=EOF){
fenjie(N);
printf("%s\n",str);
//printf("%s %d\n",str,strlen(str));
show();
}
}
2.華爲
1.字符去除重複並排序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
String str;
str=cin.next();
int flags[]=new int[256];
for (int i=0;i<str.length();i++){
char c=str.charAt(i);
flags[c]=1;
}
for(int i=0;i<256;i++){
if(flags[i]==1){
char c=(char) i;
System.out.print(c);
}
}
System.out.println();
}
}
2.判斷身份證合法性
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
String str;
str=cin.next();
boolean end=false;
int days[]={31,28,31,30,31,30,31,31,30,31,30,31};
while(!(str.length()==1&&Integer.parseInt(str)==0)){
int len=str.length();
end=false;
if(len!=18){
System.out.println(1);
end=true;
str=cin.next();
continue;
}
else{
for(int i=0;i<17;i++){
char c=str.charAt(i);
if(c>='0'&&c<='9'){
continue;
}
else
{
System.out.println(2);
end=true;
break;
}
}
if(end){
str=cin.next();
continue;
}
else{
char c=str.charAt(17);
if(!(c=='x'||c>='0'&&c<='9')){
System.out.println(3);
end=true;
str=cin.next();
continue;
}
}
/ech year
String yearStr=str.substring(6,10);
int year=Integer.parseInt(yearStr);
if(year>2100||year<1900){
System.out.println(4);
str=cin.next();
continue;
}
/eck month
String monthStr=str.substring(10,12);
int month=Integer.parseInt(monthStr);
if(month>12||month<1){
System.out.println(5);
str=cin.next();
continue;
}
/ech days
String dayStr=str.substring(12,14);
int day=Integer.parseInt(dayStr);
boolean special=false;
if(year%400==0||year%4==0&&year%100!=0){
special=true;
}
if(month==2){
if(special){
if(day!=29){
System.out.println(6);
str=cin.next();
continue;
}
}else{
if(day!=days[month-1]){
System.out.println(6);
str=cin.next();
continue;
}
}
}else{
if(day>=days[month-1]||day<=0){
System.out.println(6);
str=cin.next();
continue;
}
}
}
System.out.println(0);
end=true;
str=cin.next();
continue;
}
}
}
3.CD-Key編碼
import java.util.Scanner;
public class Main3 {
public static String getLowbits(int num,int len){
String str="";
for (int i=0;i<len;i++){
int bit=((num>>i)&1);
char cbit=(char) ('0'+bit);
str=cbit+str;
}
//System.out.println(str);
return str;
}
public static int bitsToInt(String str){
int value=0;
for(int i=0;i<str.length();i++){
int bit=str.charAt(i)-'0';
value=value+(int) (bit*Math.pow(2, str.length()-1-i));
/alue=value+(int) (bit*Math.pow(2, i));
}
//System.out.println(str+" "+value);
return value;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
String str;
//str=scanner.next();
int a,b,c;
String sa,sb,sc;
String dict="23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
a=scanner.nextInt();
b=scanner.nextInt();
c=scanner.nextInt();
sa=getLowbits(a,16);
sb=getLowbits(b,16);
sc=getLowbits(c,16);
String loopstr=sa+sb+sc;
//System.out.println(loopstr);
int len=48;
int index=0;
String temp="";
String res="";
for(int i=0;i<5*14;i++){
index=i%48;
temp=loopstr.charAt(47-index)+temp;
if(temp.length()==5){
int dictInd=bitsToInt(temp);
res=res+dict.charAt(dictInd);
temp="";
}
else{
}
}
/eck code
int sum=0;
for (int i=0;i<14;i++){
sum=sum+(int)res.charAt(i);
}
String checkstr=getLowbits(sum,10);
int index1=bitsToInt(checkstr.substring(0, 5));
int index2=bitsToInt(checkstr.substring(5, 10));
//System.out.println(index1);
//System.out.println(index2);
res=res+dict.charAt(index2);
res=res+dict.charAt(index1);
String result="";
result=result+res.substring(0, 4)+"-"+res.substring(4,8)+"-"+res.substring(8,12)+"-"+res.substring(12,16);
System.out.println(result);
}
}