天天看點

Your Ride Is Here

最近準備把USACO上的題目做一做,計劃按照網站上的順序一路做下來,練練算法順便在部落格上記錄下解題的過程和代碼,希望能幫助到大家。

題意:有兩個輸入字元串(一個comet一個group),對每個字元串計算“乘積”(A代表1,Z代表26,單詞“AS”的乘積就是1*19=19)。然後将兩者都除以47,如果求得的餘數相同則輸出“GO”,否則“STAY”。

解題思路:很簡單,讀入,計算,兩者相減模47,為0則兩者餘數相同,否則不同。相應輸出“GO”或者“STAY”。

代碼:

/*
ID: zc.rene1
LANG: C
PROG: ride
*/
#include<stdio.h>
#include<string.h>

int main(void){
	FILE *fin = fopen("ride.in", "r");
	FILE *fout= fopen("ride.out", "w");
	
	char comet[7];
	char group[7];
	
	int comet_product=1, group_product=1, i;

	fscanf(fin, "%s", comet);
	fscanf(fin, "%s", group);
	
	for(i=0;i<strlen(comet);i++){
		comet_product*=(comet[i]-'A'+1);
	}
	for(i=0;i<strlen(group);i++){
		group_product*=(group[i]-'A'+1);
	}
	
	fprintf(fout, "%s\n", (comet_product-group_product)%47==0?"GO":"STAY");

	return 0;
}