特殊乘法
题目描述
写个算法,对2个小于1000000000的输入,求结果。 特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
输入描述:
两个小于1000000000的数
输出描述:
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
示例1
输入
123 45
输出
54
emmm,暴力吧
1 #include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <math.h> 7 #include <iostream> 8 #include <map> 9 #define maxn 100 10 11 using namespace std; 12 13 map<string,int> m; 14 char a[maxn]; 15 char b[maxn]; 16 17 int main(){ 18 scanf("%s%s",&a,&b); 19 int len1=strlen(a); 20 int len2=strlen(b); 21 int sum=0; 22 for(int i=0;i<len1;i++){ 23 for(int j=0;j<len2;j++){ 24 sum+=(a[i]-'0')*(b[j]-'0'); 25 } 26 } 27 printf("%d",sum); 28 return 0; 29 }
守形数
题目描述
守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。
输入描述:
输入包括1个整数N,2<=N<100。
输出描述:
可能有多组测试数据,对于每组数据, 输出"Yes!”表示N是守形数。 输出"No!”表示N不是守形数。
示例1
输入
25 4
输出
Yes! No!
求出平方后与平方前对应长度的数,然后进行比较
1 #include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <math.h> 7 #include <iostream> 8 #include <map> 9 #define maxn 100 10 11 using namespace std; 12 13 map<string,int> m; 14 char a[maxn]={0}; 15 char b[maxn]; 16 17 int main(){ 18 int n; 19 scanf("%d",&n); 20 int ans=1; 21 while(n/ans!=0){ 22 ans*=10; 23 } 24 if((n*n)%ans==n){ 25 printf("Yes! "); 26 }else{ 27 printf("No! "); 28 } 29 return 0; 30 }
反序输出
题目描述
输入任意4个字符(如:abcd), 并按反序输出(如:dcba)
输入描述:
题目可能包含多组用例,每组用例占一行,包含4个任意的字符。
输出描述:
对于每组输入,请输出一行反序后的字符串。 具体可见样例。
示例1
输入
Upin cvYj WJpw cXOA
输出
nipU jYvc wpJW AOXc
1 #include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <math.h> 7 #include <iostream> 8 #include <map> 9 #define maxn 100 10 11 using namespace std; 12 13 map<string,int> m; 14 char a[maxn]={0}; 15 char b[maxn]; 16 17 int main(){ 18 while(scanf("%s",&a)!=EOF){ 19 for(int i=3;i>=0;i--){ 20 printf("%c",a[i]); 21 } 22 printf(" "); 23 } 24 return 0; 25 }
比较奇偶数个数
题目描述
第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。
输入描述:
输入有多组数据。 每组输入n,然后输入n个整数(1<=n<=1000)。
输出描述:
如果偶数比奇数多,输出NO,否则输出YES。
示例1
输入
5 1 5 2 4 3
输出
YES
判断奇偶,用&会快一点,奇数二进制最后一位为1
1 #include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <math.h> 7 #include <iostream> 8 #include <map> 9 #define maxn 100 10 11 using namespace std; 12 13 map<string,int> m; 14 char a[maxn]={0}; 15 int b[maxn]={0}; 16 17 int main(){ 18 int n=0; 19 int tmp=0; 20 int m=0,k=0; 21 while(scanf("%d",&n)!=EOF){ 22 for(int i=0;i<n;i++){ 23 scanf("%d",&tmp); 24 if(tmp&1){ 25 m++; 26 }else{ 27 k++; 28 } 29 } 30 if(k>m){ 31 printf("NO "); 32 }else{ 33 printf("YES "); 34 } 35 } 36 return 0; 37 }
找x
题目描述
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入描述:
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出描述:
对于每组输入,请输出结果。
示例1
输入
2 1 3 0
输出
-1
1 #include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <math.h> 7 #include <iostream> 8 #include <map> 9 #define maxn 100 10 11 using namespace std; 12 13 map<string,int> m; 14 char a[maxn]={0}; 15 int b[maxn]={0}; 16 17 int main(){ 18 int n=0; 19 while(scanf("%d",&n)!=EOF){ 20 for(int i=0;i<n;i++){ 21 cin>>b[i]; 22 } 23 int key=0; 24 cin>>key; 25 int m=0; 26 for(int i=0;i<n;i++){ 27 if(b[i]==key){ 28 m=1; 29 printf("%d ",i); 30 break; 31 } 32 } 33 if(!m){ 34 printf("-1 "); 35 } 36 } 37 return 0; 38 }
字符串链接
题目描述
不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char dstStr[],charsrcStr[])
输入描述:
两个字符串,字符串由小写字母组成。
输出描述:
链接后的字符串
示例1
输入
hello world good morning
输出
helloworld goodmorning
自定义Mystrcat和直接判断原理一样
1 #include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <math.h> 7 #include <iostream> 8 #include <map> 9 #define maxn 100 10 11 using namespace std; 12 13 map<string,int> m; 14 char a[maxn]={0}; 15 char b[maxn]={0}; 16 char c[maxn]={0}; 17 18 char *Mystrcat(char *a, char *src){ 19 char *p=a; 20 while(*p!='