//要求使用面向对象的编程思想,编写一个程序:
//使用递归结构编写一个程序,计算整数各个位上数字的和。
//例如:2155各个位上数字和为:2 + 1 + 5 + 5 = 13
//要求该程序可接受用户键入任意整数。
#import <Foundation/Foundation.h>
#import "Numadd.h"
int main(int argc, const char * argv[])
{
@autoreleasepool
{
int b;
scanf("%d",&b);
Numadd* nu = [[Numadd alloc]init ];
[nu getSumEvery:b];
}
return 0;
}
// --------- 头文件 -----------------
#import <Foundation/Foundation.h>
@interface Numadd : NSObject
@property (nonatomic , retain) NSMutableString* str;
@property (nonatomic , assign) int sumi;
-(int)getSumEvery:(int)i;
@end
// --------- 体文件 -----------------
#import "Numadd.h"
@implementation Numadd
@synthesize str , sumi;
-(int)getSumEvery:(int)i
{
if (i<10)
{
[str appendFormat:@"%i" , i%10];
sumi +=i;
NSLog(@"%@=%i",str,sumi);
return i;
}
else
{
[str appendFormat:@"%i+" , i%10];
sumi += i%10;
i = (int)i/10;
[self getSumEvery:i];
return i;
}
}
-(id)init
{
if (self = [super init])
{
self.str = [[[NSMutableString alloc] init] autorelease];
}
return self;
}
@end
// --------- 头文件 -----------------
// --------- 头文件 -----------------