Merhaba THT Ailesi , kendimi C dilinde geliştirmeye odaklanmış sıradan biriyim son günlerde kendimi ders konularına bakıp , alıştırma algoritmaları oluşturarak ilerliyorum. Son günlerde şifreleme üzerine yoğunlaşmaya başladım ve kuramadığım bir algoritma üzerine yardım istemeye karar verdim.

Algoritmanın temel mantığı kullanıcı tarafından girilen sayıyı şifreleyip output olarak yazdırmak , şifrelemenin mantığı şu şekilde ;

kullanıcı inputu : 01234
program output'u : 011222344

şöyle ki ; input içindeki her sayının 3 ile modunu alarak kalan kadar sayıyı tekrarlıyor yani ,

* 0 % 3= 0 yani 0 kendini hiç tekrar etmeden sadece 1 kere 0 yazdırıyor.

*1%3 =1 şifre içindeki 1 kendini 1 kere tekrar ediyor yani output'ta yazılması gereken 1 rakamı 2 tane oluyor.

*2%3=2 şifre içinde 2 'nin 2 kere daha yazılması lazım yani input = 2 için output=222 oluyor.

*3%3=0 kalan 0 olduğu için 3 sadece 1 kere yazılıyor program böyle devam edip gidiyor.

yazdığım kodda belirli başlı eksikler var öncelikle her seferinde mod 10 alarak azalttığım için şifre ters oluyor ve başa 0 lı kod yazınca 0 ' ı yazdırmıyor.
yani ,

input : 0123

output : 322211 olarak çıkıyor bunun üstesinden gelemedim. Kod şu şekilde ;


#include
#include


int main() {

int a,mod,rakam;


printf("Lutfen inputu giriniz : ");
scanf("%d",&a);
printf("\n");

while (a>0) {

rakam=a%10;
a=a/10;

mod =rakam%3;


for (;mod>=0;mod--) {
printf("%d",rakam);
}


}



}



Şimdiden yardımlarınız için teşekkür ediyorum arkadaşlar ayrıca algoritma mantığını nasıl geliştirebilirim bununla ilgili kaynak önerirseniz sevinirim iyi günler.