给出一个数n,则形成一个一条龙式的n*n矩阵;
(例如:n = 3,则res为下图所示)
1 2 3
6 5 4
7 8 9
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,line;
int num;
cin>>num;
for(i=0;i<num;i++)
{
if(i%2==0)
for(line=1;line<=num;line++)
{
printf("%d ",i*num+line);
}
else
{
for(line=num;line>=1;line--)
{
printf("%d ",i*num+line);
}
}
printf("\n");
}
}
随便给一个不大于1000的数A,列出所有的可能,两个素数B、C相加A;(例如:10=3+7;10=5+5;)
//素数的判断最好写成函数的形式
#include<bits/stdc++.h>
using namespace std;
bool Prime(int n){
int s=0;
for(int i=1;i<=n;i++)
{
if(n%i==0)
{
s++;
}
}
if(s==2)
return 1;
else
return 0;
}
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n/2;i++)
{
int tempa =Prime(i);
int tempb = Prime(n-i);
if(tempa==1&&tempb==1)
{
printf("%d=%d+%d\n",n,i,n-i);
}
}
return 0;
}
求最长公共子序列 动态规划