在这里是一个自定义的特殊运算符,只要ab=n,那么就可以得到(a+c)b=n+c和a(b+c)=n-2c对于任意c都满足,已知11=2
1、设a=1,b=1,c=2009,n=2,则代入(a+c)b=n+c有(1+2009)1=2+2009,即得到20101=2011
2、使用上步结果,令a=2010,b=1,c=2009,n=2011,则代入a(b+c)=n-2c,即2010(1+2009)=2011-22009
即得20102010=-2007
两步相反也没有关系,结果是一样的
#include "stdioh"
#include "stdlibh"
void main ()
{
int m,l,p,q;
printf("输入第一个矩阵的维数m和l:\n");
scanf("%d%d",&m,&l);
printf("输入第二个矩阵的维数p和q:\n");
scanf("%d%d",&p,&q);
while (l!=p)
{
printf("两个矩阵不匹配,不能进行相乘运算,请重新输入\n\n");
printf("输入第一个矩阵的维数m和l:\n");
scanf("%d%d",&m,&l);
printf("输入第二个矩阵的维数p和q:\n");
scanf("%d%d",&p,&q);
}
double a[200][200]={0}, b[200][200]={0},sum=0;
int i,j,k=0;
for (i=0;i<m;i++)
{
for (j=0;j<l;j++)
{
a[i][j]=(double)rand()/RAND_MAX;
}
}
printf("随机矩阵a是:\n");
for (i=0;i<m;i++)
{
for (j=0;j<l;j++)
{
printf("%f ",a[i][j]);
}
printf("\n");
}
//cout<<"输入一个32的矩阵:"<<endl;
for (i=0;i<p;i++)
{
for (j=0;j<q;j++)
{
b[i][j]=(double)rand()/RAND_MAX;
}
}
printf("随机矩阵b是:\n");
for (i=0;i<p;i++)
{
for (j=0;j<q;j++)
{
printf("%f ",b[i][j]);
}
printf("\n");
}
printf("ab相乘结果为:\n");
for (i=0;i<m;i++)
{
while (k<q)
{
for (j=0;j<q;j++)
{
sum = a[i][j]b[j][k]+sum;
}
printf("%f ",sum);
k++;
sum=0;
}
k=0;
printf("\n");
}
}
很明显 你没有按照要求去做:
输入格式:输入在第一行给出两个整数A和B(-100≤A,B≤100),数字间以空格分隔。
应该是
int a=-200,b=-200;
while(a>100 || b >100 || a<-100||b<-100)
{
scanf("%d %d",&a,&b);
}
输出格式:在一行中输出A乘以B的值。
应该是printf("%d\n",ab);
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0,
1^0=1,
0^1=1,
1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1
0异或任何数=任何数
1^0=1,1^1=0
1异或任何数-任何数取反
任何数异或自己=把自己置0
(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。
10100001^00000110=10100111
//1010
0001
^
0x06
=
1010
0001
^
6
(2)通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a,b的值,可通过下列语句实现:
a=10100001,b=00000110
a=a^b;
//a=10100111
b=b^a;
//b=10100001
a=a^b;
//a=00000110
(3)异或运算符的特点是:数a两次异或同一个数b(a=a^b^b)仍然为原值a
你这里的(a+c)=n+c应该是(a+c)b=n+c吧:
那么可以这么计算:
已知ab=n,且(a+c)b=n+c和a(b+c)=n-2c成立,
又11=2,
那么,12013=1(1+2012)=2-22012=-4022;
(套用第二个式子a(b+c)=n-2c,这里的n=2,a=1,b=1,c=2012)
然后20132013=(1+2012)2013=-4022+2012=-2010;
(套用第一个式子(a+c)b=n+c,这里a=1,b=2013,n=-4022)
反正这个题目就是用这两个假设的式子套用上去,随便你用什么顺序,最终都是套用类似的公式。
以上就是关于有一个运算程序a*b=n全部的内容,包括:有一个运算程序a*b=n、写出矩阵a矩阵b的乘积是矩阵c的c语言程序过程、关于PTA里面程序设计的问题,题目简单,细节太严,真不知道哪里出错了!求大佬解答!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)