#include"math.h"
main()
{
int
a,b,c,d,e,f,g,h,A,B,C,D,E,F,G,H
long
i,sum=0
scanf("%d
%d
%d
%d
%d
%d
%d
%d",&A,&B,&C,&D,&E,&F,&G,&H)
scanf("%d
%d
%d
%d
%d
%d
%d
%d",&a,&b,&c,&d,&e,&f,&g,&h)
for(i=2i<pow(2,63)i++)
{
if(i%A==a&&i%B==b&&i%C==c&&i%D==d&&i%E==e&&i%F==f&&i%G==g&&i%H==h)
{
sum=i
break
}
}
printf("%ld",sum)
}
师弟啊,你们好幸运啊,我们去年来华农的时候,没可没有这么好的机会有这些竞赛哦,希望你好好把握!
其实这些体都不是很难,只是你们以前没接触过C语言而一时适应不了吧……其实每个初学C语言的人都认为好像有学了,但是好像不懂,其实你慢慢会懂得,你一直在进步,只是没感觉出来而已……
我建议你如果真的想学好C语言,要多多上机。学校不个带电脑不是借口,东区实验楼三楼的机子在星期一至星期五都是免费开放的,给你们上机做实验足够了哦,希望你们好好珍惜……
呵呵,可能说太多了吧,最后跟你说一下我自己,我是信息学院的,06级,QQ115881379,有什么问题可以找我!
#include<iostream>using namespace std
void main()
{
int i,j,a[3]={2,20,12},c1,c2,f[100]={0},m,n,t=0,k=0,x
for(x=0x<=3x++)
{
for(i=1i<=120i++)
for(j=1j<=120j++)
if(i*i+j*j==a[x]*a[x] || i*i-j*j==a[x]*a[x]|| j*j-i*i==a[x]*a[x])
{
if(i>j)
{ c1=i
c2=j
}
else
{c1=j
c2=i
}
if(k>0)
for(m=0m<=k-1m++)
if(c1==f[m])
t=1
if(t==0)
{
f[k++]=c1
cout<<c1<<","<<c2<<endl
}
t=0
}
if(f[0]==0)
cout<<"没有解"<<endl
else
cout<<endl
}
}
/**File:Josephus.cpp
*Author:YangWudi
*Version 1.3b
*------------------------------------------
*这个程序主要用双向循环链表来实现约瑟夫问题 。
*/
#include <iostream>
#include <cstdio>
using namespace std
typedef int ElementType
struct Node
typedef struct Node *PtrToNode
typedef PtrToNode List
typedef PtrToNode Position
struct Node
{
ElementType element
Position prior
Position next
}
void Delete(Position P)
Position Forward(Position address, int step)
int main()
{
List L=NULL
int N, M, num
cout <<"Please enter the N and M" <<endl
while(1){
cin >>N >>M
num = N
if(N>0&&M>=0)break//判断N和M是否合法
cout <<"Don't you know the value input should fit N>0&&M>=0?!" <<endl
<<"Please enter N and M again:"
}
L = (List)malloc(sizeof(Node))
Position temp=L
for(int i=1i++){
temp->next = (List)malloc(sizeof(Node))
temp->element = i
if(i==N)break
temp->next->prior = temp
temp = temp->next
}
free(temp->next)//将多余分配的内存释放
temp->next = L
L->prior = temp
Position position=L, pause
while(num!=1){
pause = Forward(position, M%num)//传递完毕后的位置,也就是应该删除的位置
position = pause->next//下次开始时的位置
//没有打印语句可以减少运行时间,但数据规模小的时候加上可以清晰的反映删除的步骤,这个语句是否加上可选
//cout <<"Delete-" <<pause->element <<" "
Delete(pause)
num--
}
cout <<endl <<"Winner is:" <<position->element <<endl
system("pause")
return 0
}
/*Delete P from a list*/
void Delete(Position P)
{
P->next->prior = P->prior
P->prior->next = P->next
//free(P)//不释放内存为了提高运行效率,不过如果内存不够的话,还是应该调用free函数,所以这个地方可选
return
}
/*将现在位置的节点按照应该移动的步数向前移动,并且返回移动后所在位置的指针*/
Position Forward(Position address, int step)
{
Position temp=address
for(int i=0i<stepi++){
temp = temp->next
}
return temp
}