//
// By 85
// elhacker.net
// etalking.com.ar
// boyscout_etk@hotmail.com
// 2013
////////////////////////////////////////////////////////////////////////////////////////////////
#pragma warning(disable: 4244)
#pragma comment(lib, "winmm.lib")
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
////////////////////////////////////////////////////////////////////////////////////////////////
#define ASC 0
#define DESC 1
#define ORDER ASC
double ServerTime;
#define VERSION "0.1"
////////////////////////////////////////////////////////////////////////////////////////////////
__forceinline Cifras(int iNm){
int cifras = 0;
for(int copia = abs(iNm), exnum=1;;){
if(exnum <= copia)
{
exnum = exnum*10;
cifras++;
}
else
{
break;
}
}
return cifras;
}
////////////////////////////////////////////////////////////////////////////////////////////////
void ListarUnidades(int iNm, int iModo){
int cifras = Cifras(iNm);
//printf("cifras %d\n", cifras);
//system("pause");
if(iModo!=0) //ASC
{
for(int i=(cifras-1), X=1; i>=0; i--){
printf("%d\n", ((iNm)/X)%10);
X=(X*10);
}
}
else //DESC
{
for(int j=0, Y= (int)pow(10,(cifras-1)); j<cifras; j++){
printf("%d\n", ((iNm)/Y)%10);
Y=(Y/10);
}
}
putchar("\n"[0]);
}
////////////////////////////////////////////////////////////////////////////////////////////////
void ListarRebajados(int iNm, int iModo){
int cifras = Cifras(iNm);
//printf("cifras %d\n", cifras);
//system("pause");
if(iModo!=0) //ASC
{
for(int i=(cifras-1), X=1; i>=0; i--){
printf("%d\n", ((iNm)/X));
X=(X*10);
}
}
else //DESC
{
for(int j=0, Y= (int)pow(10,(cifras-1)); j<cifras; j++){
printf("%d\n", ((iNm)/Y));
Y=(Y/10);
}
}
putchar("\n"[0]);
}
////////////////////////////////////////////////////////////////////////////////////////////////
void sayver(){
char saystr[256];
char key[5];
key[0]=(((int)ServerTime)%10)+0x81;
key[1]=((((int)ServerTime)/10)%10)+0x82;
key[2]=((((int)ServerTime)/100)%10)+0x83;
key[3]=((((int)ServerTime)/1000)%10)+0x84;
key[4]=0;
strcpy(saystr,"say \"");
strcat(saystr,VERSION);
strcat(saystr,key);
strcat(saystr," - Coded By : cs_007 + boy_scout ");
strcat(saystr,"\"\n\n\n");
printf(saystr);
}
////////////////////////////////////////////////////////////////////////////////////////////////
void DescomponerEnUnidades(int num){//2012
int copia= abs(num), m = 1, cifras = 1;
for(;copia>=10;copia/=10) cifras++;
for(int x=0;x<(cifras-1);x++) m*=10;
float v1=num;// Permite guardar decimales para cuando se divida
int v2=0, v3=num;
for(int i=0; i<cifras; i++){
printf("%f\n",v1);
v1/=m;// Esto puede resultar en un número con decimales
//printf("%f\n",v1);// Para ver el proceso XD
v2=((int)v1*m);// Se opera tomando en cuenta sólo la parte entera
v3-=v2;// Al número original le resta una parte del mismo
m/=10;// Se rebaja el multiplicador
v1=v3;// Se obtiene el número de la unidad
}
putchar("\n"[0]);
}
////////////////////////////////////////////////////////////////////////////////////////////////
int main(){
ServerTime = (timeGetTime()/1000);
printf("ServerTime: %f\n\n",ServerTime);
sayver();
ServerTime = -12345;
// ServerTime = -0;
// ServerTime = 0;
// ServerTime = -1;
// ServerTime = 12345;
// ServerTime = 100000;
// ServerTime = -100000;
ListarUnidades(ServerTime,ORDER);
ListarRebajados(ServerTime,ORDER);
DescomponerEnUnidades(ServerTime);
system("pause");
return (0);
}
////////////////////////////////////////////////////////////////////////////////////////////////