C言語の基本的なプログラミングの問題-飲料水の問題、デコードの問題

C言語の基本的なプログラミングの問題-飲料水の問題、デコードの問題

知的な質問があります。「ある店では、3本の空の炭酸飲料を1本の炭酸飲料に交換できると規定されています。XiaoZhangは10本の空の炭酸飲料を手にしています。彼女は最大で何本の炭酸飲料を交換できますか?」答えは5本です。方法は次のとおりです。最初に9本の空のボトルを3本のソーダに交換し、3本のフルボトルを飲みます。4本の空のボトルを飲んだ後、3本を別のボトルに使用し、このフルボトルを飲みます。この時点で2本の空のボトルが残っています。次に、上司に最初に炭酸飲料のボトルを貸してもらい、満杯のボトルを飲み、次に3本の空のボトルを使用して満杯のボトルと交換して上司に返却するように依頼します。Xiao Zhangに空のソーダボトルがn個ある場合、彼は最大で何本のソーダボトルを交換できますか?
入力の説明:
入力ファイルには、最大10セットのテストデータが含まれ、各セットは1行を占め、張の手にある空のソーダボトルの数を表す正の整数n(1 <= n <= 100)のみが含まれます。 。n = 0は入力の終わりを意味し、プログラムはこの行を処理しないでください。
出力の説明:
テストデータのセットごとに、飲めるソーダボトルの最大数を示す1行を出力します。ボトルが飲めない場合は0が出力されます。

#include<stdio.h>
int PZ(int n){
    
    
	int p = 0;
	while (n!=1){
    
    
		p =p+n / 3;
		n = n/3 + n % 3;
		if (n==2){
    
    
			p++;
			break;
		}
	}
	return p;
}
int main(){
    
    
	int n,i=0;
	int num[10];
	while (1){
    
    
		scanf("%d",&n);
		if (n!=0){
    
    
			num[i] = PZ(n);
			i++;
		}
		else{
    
    
			break;
		}
	}
	for (int j = 0; j < i;++j){
    
    
		printf("%d\n",num[j]);
	}
	system("pause");
	return 0;
}

タイトル説明
パスワードは私たちの生活の中で非常に重要なものであり、言うことができない私たちの秘密はそれに依存しています。次に、Yuanziはパスワードの上にパスワードを追加します。これは簡単ですが安全です。YuanziのBBSの元のパスワードがzvbo9441987であるとします。メモリを容易にするために、彼はアルゴリズムを使用してパスワードをYUANzhi1987に変換します。このパスワードは彼の名前と生年月日です。どのように忘れても忘れることはできません。 、そしてあなたはそれを露骨に置くことができます本当のパスワードは目立つ場所で他の人に知られていません。彼はこのように変更しました。誰もが電話の文字を知っています:
1–1、abc–2、def–3、ghi–4、jkl–5、mno–6、pqrs–7、tuv–8 wxyz–9、0- 0、それはとても簡単です。Yuanziはパスワードのすべての小文字を対応する数字に変換します。数字やその他の記号は変更されません。ステートメント:パスワードにスペースはなく、パスワードの大文字は次のようになります。小文字の後、移動します。 Xのように1桁後方に移動すると、最初に小文字になり、次に1桁後方に移動します。yではありません。簡単です。後方に移動するzはaであることを忘れないでください。
入力の説明:
入力には複数のテストデータが含まれます。入力はプレーンテキストで、パスワードの長さは100文字以内で、ファイルの最後まで入力します。
出力の説明:Yuanzi
の実際の暗号文出力します
1YUANzhi1987を
入力して
zvbo9441987を
出力します

#include<stdio.h>
#include<string.h>
void IPassWord(char *p,int len){
    
    
	char pw[100];
	for (int i = 0; i <= len;++i){
    
    
		if (*(p + i) >= 'A'&&*(p + i) <= 'Y'){
    
    
			pw[i] = *(p + i) + 32 + 1;
		}
		else if (*(p + i) == 'Z'){
    
    
			pw[i] = 'a';
		}
		else if (*(p + i) == 'a' || *(p + i) == 'b' || *(p + i) =='c' ){
    
    
			pw[i] = '2';
		}
		else if (*(p + i) == 'd' || *(p + i) == 'e' || *(p + i) == 'f'){
    
    
			pw[i] = '3';
		}
		else if (*(p + i) == 'g' || *(p + i) == 'h' || *(p + i) == 'i'){
    
    
			pw[i] = '4';
		}
		else if (*(p + i) == 'j' || *(p + i) == 'k' || *(p + i) == 'l'){
    
    
			pw[i] = '5';
		}
		else if (*(p + i) == 'm' || *(p + i) == 'n' || *(p + i) == 'o'){
    
    
			pw[i] = '6';
		}
		else if (*(p + i) == 'p' || *(p + i) == 'q' || *(p + i) == 'r' || *(p + i) == 's'){
    
    
			pw[i] = '7';
		}
		else if (*(p + i) == 't' || *(p + i) == 'u' || *(p + i) == 'v'){
    
    
			pw[i] = '8';
		}
		else if (*(p + i) == 'w' || *(p + i) == 'x' || *(p + i) == 'y' || *(p + i) == 'z'){
    
    
			pw[i] = '9';
		}
		else{
    
    
			pw[i] = *(p+i);
		}
	}
	printf("%s\n",pw);
}
int main(){
    
    
	char P[100];
	scanf("%s",P);
	IPassWord(P,strlen(P));
	system("pause");
	return 0;
}

おすすめ

転載: blog.csdn.net/qq_45841205/article/details/109726530