取模问题
  • 板块P1192 台阶问题
  • 楼主Chery1
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/4/11 13:57
  • 上次更新2023/10/23 18:45:59
查看原帖
取模问题
887431
Chery1楼主2023/4/11 13:57

我想知道为什么要取模,取模出来的答案不应该是错误的吗,为什么我取了模就AC了,不取模我的代码99 100永远输出0.我不是很理解b如果取了模100003就AC了,不取就错误了。

#include <stdio.h>
#include <stdlib.h>
#include<cstring>
void taijie(long long* a, int N, int K) {
	for (int i = 2; i <= N; i++) {	
		if (i<K) {
			long long b = 0;
			for (int j = 0; j < i; j++) {
				b = (a[j] + b);
			}
			a[i] = b;
		}
		else {
			long long b = 0;
			for (int j = i - K; j < i; j++) {
				b = (a[j] + b);
			}
			a[i] = b;
		}
	}
}
int main() {
	int N;
	int K;
	scanf_s("%d%d", &N, &K);
	 long long* a = (long long*)malloc((N + 1) * sizeof(long long)); //注意需要申请N+1个int类型空间
	 //memset(a, 0, N*sizeof(a));
	 a[0]=a[1] = 1;
		 if (K == 1) {
			 printf("1");
		 }
		 else {
			 if (K > N) {
				 taijie(a, N, N);
				 printf("%lld", a[N]);
			 }
			  else {
				 taijie(a, N, K);
				 printf("%lld", a[N]);
			 }
		 }
	free(a);
	return 0;
}
2023/4/11 13:57
加载中...