买不到的糖果
来源:互联网 发布:电脑分辨率测试软件 编辑:程序博客网 时间:2024/05/17 09:29
#include<stdio.h>
main()
{
int a,b,sum;
scanf("%d %d",&a,&b);
sum=a*b-a-b;//简单算法
printf("%d\n",sum);
return 0;
}
算法二
#include<stdio.h>
#define N 50000
int a[N]; //开一个长为N的数组,用于记录
void scaning(int m, int n) //扫描,看某个数字是否是m和n的某个组合的结果,是的话记为1
{
int i, j;
{
int i, j;
//为了减少一些无谓的循环,(N/m)*m已经不小于N了,所以N/m之后的数字就不用继续循环了
for(i=0; i<=N/m; i++)
{
//同理,由i*m + j*n < N得,只要j不小于(N-m*i)/n,j*[(N-m*i)/n]就可以达到N了
for(j=0; j<=(N-m*i)/n; j++)
{
if(i*m + j*n < N)
a[i*m + j*n] = 1;
}
}
}
for(i=0; i<=N/m; i++)
{
//同理,由i*m + j*n < N得,只要j不小于(N-m*i)/n,j*[(N-m*i)/n]就可以达到N了
for(j=0; j<=(N-m*i)/n; j++)
{
if(i*m + j*n < N)
a[i*m + j*n] = 1;
}
}
}
//统计,如果出现连续至少minimum个1,就说明后面的数字都是可以被m、n组合出来的
int counting(int minimum)
{
int i;
int times = 0;
for(i=0; i<N; i++)
{
if(a[i] == 1)
times++;
else
times = 0;
int counting(int minimum)
{
int i;
int times = 0;
for(i=0; i<N; i++)
{
if(a[i] == 1)
times++;
else
times = 0;
if(times == minimum)
return i - minimum; //返回第一组至少四个连续的1之前的那个数
}
return -1; //如果找不到,就返回-1
}
return i - minimum; //返回第一组至少四个连续的1之前的那个数
}
return -1; //如果找不到,就返回-1
}
int main()
{
int m, n;
scanf("%d%d", &m, &n);
scaning(m, n);
printf("%d\n", counting(m < n ? m : n)); //传给counting较小的数
return 0;
}
{
int m, n;
scanf("%d%d", &m, &n);
scaning(m, n);
printf("%d\n", counting(m < n ? m : n)); //传给counting较小的数
return 0;
}
0 0
- 买不到的糖果
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的账目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 买不到的数目
- 动态方法访问
- A算法与A*算法区别
- 总结:关于使用ffmpeg video4linux2 打开usb摄像头流的失败过程排查
- linux创建守护进程
- git 学习
- 买不到的糖果
- Struts2标签
- web.xml 中spring-servlet.xml 和 application.xml 配置位置及含义
- linux 修改主机名
- mariadb互为主从,读写分离
- 1629: [Usaco2007 Demo]Cow Acrobats
- 用react native模仿着写html5手机端的APP
- 作为一个程序猿,我的五年规划是这样的
- assembly方式打包maven jar