鸡兔同笼问题
注意,脚不是4的倍数的时候最少的动物数,其实就是(N-2)/4+1,只不过这里整形截断了小数部分..
#include "stdio.h"
int main()
{
int nCases,nFeet ,i;
scanf("%d",&nCases);
for(i=0; i
棋盘距离问题
注意不要忽略后的x==0 和y==0的情况
#include "stdio.h"
#include "math.h"
int main()
{
int nCase;
scanf("%d",&nCase);
char begin[20][2],end[20][2];
for(int i=0;i
校门外的树
主要的问题是怎么存储如果开一个数组,实在是太大,而且不能根据L来调整数组大小,浪费空间。用vector
#include
#include
#include
using namespace std;
int main()
{
int L,M,start,end,m,i;
cin>>L>>M;
vector tree(L+1,true);
for (m=0;m>start>>end;
for(i=start;i<=end;i++)
tree[i]=false;
}
cout<
确定进制问题
1.需要注意字符串转十进制数的方法ret = ret*b + x[i]-'0';
2.注意如果在2-16数制中如数字超过进制,返回-1,提前跳出当前循环...
#include
#include
#include
using namespace std;
long b2ten(string x,int b)
{
long ret = 0;
for(int i=0;i=b) return -1;
ret = ret*b + x[i]-'0';
}
return ret;
}
int main()
{
int n,b;
string p,q,r;
long pAgr,qAgr,rAgr;
cin>>n;
while(n--)
{
cin>>p>>q>>r;
for(b=2;b<=16;b++)
{
pAgr = b2ten(p,b);
qAgr = b2ten(q,b);
rAgr = b2ten(r,b);
if(pAgr == -1 || qAgr == -1 || rAgr == -1) continue;
if(pAgr * qAgr == rAgr){
cout<
skew数的问题
挺简单,就是一个数制转换的问题,要把每一个base的基计算出来,要注意base和字符串的对应关系..
#include
#include
using namespace std;
int main()
{
int base[31],sum,k;
string skew;
base[0] = 1;
for(int i=1; i<31; i++) base[i]=2*base[i-1]+1;
while(1)
{
cin>>skew;
if(skew == "0")
break;
sum = 0;
k = skew.length();
for(i=0;i